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

向MongoDB中所有文档的字段添加新子字段,mongodb,Mongodb,我的MongoDB集合中有多个如上所示的文档。 我希望能够在所有文档的所有者中添加一个新字段。 例如,如果我想将“c”添加到所有文档的所有者,我该怎么做 我发现了一个查询,它执行以下操作: { "_id":{"$oid":"5d6eb64a2a33670cfe44813f"}, "customer":"ddd", "owners": { "a":"nnn", "b":"mmm"}, } 但是我可以在文档的一个字段(“所有者”)中添加一个子字段(“c”)吗 也试过, db

我的MongoDB集合中有多个如上所示的文档。 我希望能够在所有文档的
所有者
中添加一个新字段。 例如,如果我想将
“c”
添加到所有文档的
所有者
,我该怎么做

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

{
    "_id":{"$oid":"5d6eb64a2a33670cfe44813f"},
    "customer":"ddd",
    "owners": { "a":"nnn", "b":"mmm"},
}
但是我可以在文档的一个字段(
“所有者”
)中添加一个子字段(
“c”
)吗

也试过,

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

但这会删除现有的子字段并添加它自己。

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

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

你就快到了。只需将父项添加到$set:

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

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

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

看看这个答案。它的目标是做一些类似的事情——只是略有不同。这一个改变了结构,但我只是想添加一个新的子字段。它的目标是做一些类似的事情——只是略有不同。这一个改变了结构,但我只是想添加一个新的子字段。