Foo是我的MongoDB collection。在这里,我只有一个document:
{
0: {code: "basic", caption: "basic", points: 100},
1: {code: "gold", caption: "gold", points: 200},
2: {code: "platinum", caption: "platinum", points: 300},
3: {code: "diamond", caption: "diamond", points: 400},
id: "PnpbhFi8m7NqZXRr6"
}当我尝试upsert时,我会收到以下错误:
TypeError: keypath.split is not a function. (In 'keypath.split('.')', 'keypath.split' is undefined)这是我的密码:
const data = [
{
"code": "basic",
"caption": "basic",
"points": 100
},
{
"code": "gold",
"caption": "gold",
"points": 200
},
{
"code": "platinum",
"caption": "platinum",
"points": 300
},
{
"code": "diamond",
"caption": "diamond",
"points": 400
}
];
const doc = Foo.findOne();
Foo.upsert(doc._id, { $set: data });我的错误在哪里?
发布于 2016-09-08 15:11:23
你用错了$set。您必须将对象传递给$set
Foo.update(doc._id, {
$set: {
4: data[0],
5: data[1],
6: data[2],
7: data[3],
}
});此外,您也不必使用upsert。来自流星博士关于upsert的报道
修改集合中的一个或多个文档,如果没有找到匹配的文档,则插入一个文档。
但是您的文档是存在的,所以不需要upsert,请使用update
https://stackoverflow.com/questions/39387548
复制相似问题