red*_*sht 0 mongoose mongodb node.js
我很难Model.bulkWrite更新我的文档。我在文档中没有发现任何内容表明这是不可能的(虽然,也许我错过了)。下面是我正在使用的代码示例:
var opts = [];
for (var item of data){
opts.push({
updateOne: {
filter: {"id": item.id},
update: {"$setOnInsert": {
"id": item.id,
"name": item.name}
}
}
})
};
Item.bulkWrite(
opts,
{upsert: true},
function(err, result){
if(err) throw err;
console.log(result);
// do more stuff here
}
);
Run Code Online (Sandbox Code Playgroud)
我通过循环运行多个更新/更新插入没有任何问题,但是当我这样做时,我无法访问操作完成时的回调,因此这对我不起作用。我还测试了上面的代码,updateOne用一个insertOne部分替换了这个部分,它没有问题。
有谁知道发生了什么?在这里 upsert 不是一个有效的选项吗?
@Alex Blex,你是对的。我想这只是我的疏忽。对于那些感兴趣的人,这意味着upsert从第二部分代码中删除并将第一部分更改为:
var opts = [];
for (var item of data){
opts.push({
updateOne: {
filter: {"id": item.id},
update: {"$setOnInsert": {
"id": item.id,
"name": item.name}
},
upsert: true
}
})
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3042 次 |
| 最近记录: |