Node.js MongoDB错误:更新操作文档必须包含原子运算符
错误是:更新操作文档必须包含原子运算符Node.js MongoDB错误:更新操作文档必须包含原子运算符,node.js,mongodb,Node.js,Mongodb,错误是:更新操作文档必须包含原子运算符 db.get().collection('users').updateOne(query, newvalues, function (err, result) { cb(err,result) }) 我已经使用了$set操作符。我刚刚在控制台上打印了query和newvalues,没有发现任何错误 query: { username: 'macarra' } newvalues: { $set: {name: "Mojo Picon",ema
db.get().collection('users').updateOne(query, newvalues, function (err, result) {
cb(err,result)
})
我已经使用了$set操作符。我刚刚在控制台上打印了query和newvalues,没有发现任何错误
query: { username: 'macarra' }
newvalues: { $set: {name: "Mojo Picon",email: "mako@gmail.es"} }
更新的示例代码
db.collection(collectionName).findOneAndUpdate
(
{
documentStatus:req.body.documentStatus,
auditTrail:auditArray
},
{ $addToSet: {"clientArray": clientArrayElem}},
{ upsert:true}
);
请查看官方驱动程序文档或使用noSQl booster IDE,当您尝试编辑文档时,它将显示查询
如果对象具有新值:
var obj = {
name: "Mojo Picon",
email: "mako@gmail.es"
}
要构建updateOne方法所需的newvalues对象,您需要:
var newvalues = {
$set: obj
}
findOneAndUpdate()返回您更新的文档,但我使用的是update方法我认为我发现了错误,一个非常愚蠢的错误。我尝试使用字符串操作数“+=”附加到newvalues,因此可能newvalues不再是JSON对象。只是为了澄清这一点,我的做法是:wait collection.updateOne(过滤器,{$set:updateObject})