Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB错误:更新操作文档必须包含原子运算符_Node.js_Mongodb - Fatal编程技术网

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})