MongoDB更新记录和获取

时间:2018-05-01 09:02:20

标签: node.js mongodb

在MongoDB中(使用node.js)我想更新一条记录然后获取返回的记录。

我可以原子地做这个吗?

我的搜索建议我可以使用findOneAndUpdate,但是我的测试显示它按照它所说的顺序执行,因此它的“查找”部分返回之前的记录 / strong>更新。

> db.demo.insert({ id: 1, data: "abc" })
WriteResult({ "nInserted" : 1 })
> db.demo.findOneAndUpdate( { id: 1}, { $set: { data: "xyz" } } )
{ "_id" : ObjectId("5ae82c1d53d7ae2de3ffbcea"), "id" : 1, "data" : "abc" }

如何在更新之后找到记录

1 个答案:

答案 0 :(得分:1)

来自mongodb文件的

db.collection.findOneAndUpdate(
    filter,
   update,
   {
     projection: <document>,
     sort: <document>,
     maxTimeMS: <number>,
     upsert: <boolean>,
     returnNewDocument: <boolean>,
     collation: <document>,
     arrayFilters: [ <filterdocument1>, ... ]
   }
)

注意:returnNewDocument应该是控制是否接收新文档或旧文档的选项。

编辑:如果您使用mongoose,请检查this问题