【问题标题】:Add fields in all documents of a collection - MongoDB在集合的所有文档中添加字段 - MongoDB
【发布时间】:2020-09-04 07:39:13
【问题描述】:

我在为 MongoDB 集合中的所有文档添加新字段的语法上遇到困难。有什么想法我哪里出错了吗?

例如,我想向名为“cats”的集合中的所有文档添加一个空数组:

db.cats.updateMany({}, {$set: {images: []}});

它在 AWS Cloud9 命令行中返回以下内容,并且不会在 MongoDB Atlas 文档中更新:

MongoDB Enterprise **db**-shard-0:PRIMARY> db.cats.updateMany({}, {$set: {images: []}});
{ "acknowledged" : true, "matchedCount" : 0, "modifiedCount" : 0 }

我使用的是 MongoDB shell 版本 v3.6.3(但是我的服务器版本是 4.2.8)

【问题讨论】:

  • 语法看起来不错。集合可能是空的吗?
  • "matchedCount" : 0 表示查询部分没有匹配任何文档。那是正确的数据库吗?
  • 问题可能是因为我从 Cats 集合中提交了查询。我键入:show dbs,使用 ,显示集合,使用猫,然后提交查询。通过上一层,一切都奏效了。谢谢!

标签: node.js mongodb cloud9


【解决方案1】:

您必须使用空选择器,并将多标志设置为 true(最后一个参数)以更新所有文档

db.getCollection('cats').update(
  {},
  { $set: {"images": []} },
  false,
  true
)

【讨论】:

    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2020-10-01
    • 2011-12-04
    • 1970-01-01
    • 2020-10-02
    相关资源
    最近更新 更多