Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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
Javascript db.collection.findOneAndUpdate()未返回;更新的「;文件_Javascript_Node.js_Mongodb_Mongodb Query - Fatal编程技术网

Javascript db.collection.findOneAndUpdate()未返回;更新的「;文件

Javascript db.collection.findOneAndUpdate()未返回;更新的「;文件,javascript,node.js,mongodb,mongodb-query,Javascript,Node.js,Mongodb,Mongodb Query,继官方 db.students2.findOneAndUpdate( {u id:1}, [{$set:{“total”:{$sum:$grades.grade“}}}}],//$set stage是`$addFields`` stage的别名 {returnNewDocument:true} ) 我的实施,, const userscolection=db().collection(“用户”);//db()通过模块公开 usersCollection.findOneAndUpdate( {u

继官方

db.students2.findOneAndUpdate(
{u id:1},
[{$set:{“total”:{$sum:$grades.grade“}}}}],//$set stage是`$addFields`` stage的别名
{returnNewDocument:true}
)
我的实施,,
const userscolection=db().collection(“用户”);//db()通过模块公开
usersCollection.findOneAndUpdate(
{u id:new ObjectID(this.data.\u id)},
{$set:{
总计:this.data.updatedTotal
}
} ,
{returnNewDocument:true}
)
尽管有
{returnNewDocument:true}
选项,它仍然返回旧文档 但是,当我再次查询集合时,
userscolection.findOne({u id:new ObjectID()});//返回更新的文档
它返回更新的文档。这意味着
db.collection.findOneAndUpdate()
工作正常

问题是,尽管有
{returnNewDocument:true}
选项,但它不会返回更新的文档。
这是为什么?要让mongoose返回新文档,需要向查询中添加{new:true}

我会给这个机会:

usersCollection.findOneAndUpdate(
   { _id : new ObjectID (this.data._id) },
   { $set: { total : this.data.updatedTotal } },
   { new: true }
)

要返回它,您需要添加

{returnOriginal: false}
总是检查我解决的问题

由于我使用的是本机mongodb驱动程序,
我们将使用
{returnOriginal:false}
而不是
{new:true}

检查此答案您必须再添加一个参数
{new:true}
,以便monoose了解您需要更新文档