MongoDB mongosh 更新

更新文档

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

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

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

updateOne()

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

让我们看看标题为 "Post Title 1" 的帖子的 "like" 数:

实例

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

运行实例

现在,让我们将此帖子的 "likes" 更新为 2。为此,我们需要使用 $set 运算符。

实例

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

运行实例

再次检查文档,您会发现 "like" 已经被更新。

实例

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

运行实例

如果没有找到则插入

如果您想在未找到文档时插入该文档,可以使用 upsert 选项。

实例

更新文档,如果未找到,则插入它:

db.posts.updateOne( 
  { title: "Post Title 5" }, 
  {
    $set: 
      {
        title: "Post Title 5",
        body: "Body of post.",
        category: "Event",
        likes: 5,
        tags: ["news", "events"],
        date: Date()
      }
  }, 
  { upsert: true }
)

运行实例

updateMany()

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

实例

使用 $inc(增量)运算符将所有文档的点赞数增加1:

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

运行实例

现在检查所有文档中的点赞数,您将看到它们都已增加 1。