如果声明了upsert,为什么要大量替换其他字段?
我在做什么错了?
原始收藏:
{
_id:'xx',
a:1
}
过程
var bulk = collection.initializeUnorderedBulkOp();
users.forEach(x => {
bulk
.find({ _id:'xx'})
.upsert()
.updateOne({
b: 2
});
});
bulk.execute();
结果
{
_id:'xx',
b:2
}
答案 0 :(得分:0)
现在我不明白!我需要使用$ set命令,以便它仅更新某些字段。
var bulk = collection.initializeUnorderedBulkOp();
users.forEach(x => {
bulk
.find({ _id:'xx'})
.upsert()
.updateOne({
$set: //CHANGED LINE
{
b: 2
}
});
});
bulk.execute();
现在可以使用
{
_id:'xx',
a:1,
b:2
}