MongoDB 使用 mongosh 更新

更新文档

要更新现有文档,我们可以使用 updateOne()updateMany() 方法。

第一个参数是一个查询对象,用于定义应更新的一个或多个文档。

第二个参数是定义更新数据的对象。

updateOne()

updateOne() 方法将更新找到的与所提供的查询匹配的第一个文档。

让我们看看标题为 "帖子标题1" 的帖子的 "点赞数" 是多少:

实例
  1. db.posts.find( { title: "Post Title 1" } )

现在,让我们将这篇文章的 "点赞数" 更新为 2。为此,我们需要使用 $set 运算符。

实例
  1. db.posts.updateOne( { title: "Post Title 1" }, { $set: { likes: 2 } } )

再次检查文档,您会看到 "点赞数" 已更新。

实例
  1. db.posts.find( { title: "Post Title 1" } )

如果未找到,则请插入

如果您想在找不到文档的情况下插入文档,可以使用 upsert 选项。

实例

更新文档,但如果找不到,则插入:

  1. db.posts.updateOne(
  2. { title: "Post Title 5" },
  3. {
  4. $set:
  5. {
  6. title: "Post Title 5",
  7. body: "Body of post.",
  8. category: "Event",
  9. likes: 5,
  10. tags: ["news", "events"],
  11. date: Date()
  12. }
  13. },
  14. { upsert: true }
  15. )

updateMany()

updateMany() 方法将更新与提供的查询匹配的所有文档。

实例

1 之前更新所有文档的点赞数。为此,我们将使用 $inc(增量)运算符:

  1. db.posts.updateMany({}, { $inc: { likes: 1 } })

现在检查所有文档中的点赞数,你会发现它们都增加了 1