向MongoDB中所有文档的字段添加新的子字段

时间:2019-09-04 22:51:50

标签: mongodb

{
    "_id":{"$oid":"5d6eb64a2a33670cfe44813f"},
    "customer":"ddd",
    "owners": { "a":"nnn", "b":"mmm"},
}

我的MongoDB集合中有多个类似于上图的文档。 我希望能够在owners内向所有文档添加一个新字段。 例如,如果我要将"c"添加到所有文档的owners中,该怎么做?

我发现一个查询执行以下操作:

db.myCollection.update({}, {$set: {"isOpen": false}}, false, true)

但是我可以将新的子字段("c")添加到文档的一个字段("owners")吗?

也尝试过

db.profiles.update_many({}, { '$set': {'owners': {'c': ''}}})

但这会删除现有子字段并添加自身。

2 个答案:

答案 0 :(得分:2)

您快到了。只需将父项添加到$ set中:

db.profiles.update_many({},{$set: {"owners.c": "something"}});

答案 1 :(得分:0)

我想您应该删除$ set,set会覆盖现有文档