Mongo DB 中 UpdateOne() 和 findOneAndUpdate 方法之间的区别

Bos*_*445 3 insert-update mongodb mongodb-query mongodb-update

MongoDB中的方法UpdateOne()和方法有什么区别?findOneAndUpdate()我似乎无法理解他们的差异。如果可以使用使用UpdateOne()and 的演示示例,将不胜感激。findOneAndUpdate

Ram*_*tal 6

使用以下命令将文档插入到空集合中mongo-shell

db.users.insertOne({name: "Jack", age: 11})
Run Code Online (Sandbox Code Playgroud)

更新一

db.users.updateOne({name: "Jack"}, {$set: {name: "Joe"}})
Run Code Online (Sandbox Code Playgroud)

此操作返回一个UpdateResult.

{ acknowledged: true,
  insertedId: null,
  matchedCount: 1,
  modifiedCount: 1,
  upsertedCount: 0 }
Run Code Online (Sandbox Code Playgroud)

查找并更新

db.users.findOneAndUpdate({name: "Joe"}, {$set: {name: "Jill"}})
Run Code Online (Sandbox Code Playgroud)

此操作返回已更新的文档。

{ _id: ObjectId("62ecf94510fc668e92f3cecf"),
  name: 'Joe',
  age: 11 }
Run Code Online (Sandbox Code Playgroud)

FindOneAndUpdate当您必须同时更新文档并获取它时,这是首选。