有一个相当深度嵌套的文档,嵌套的一部分包括一个ObjectIDs的哈希对象和一个对应的对象。我需要通过更新嵌套对象中的一个值来更新集合中的所有文档。所以我知道如果我的结构如下:
{
"name" : "Bob",
"address" : {
"street" : "123 Baker St"
}
}
我可以使用以下shell命令更新所有“街道”值:
db.mycollection.update({}, {$set : {"address.street" : "124 Baker St"}}, {multi: true});
但在我的情况下,结构不是那么简单,那里有那些UUID,我想更新所有。结构更像是这样:
{
"name": "Bob",
"addresses" : {
"0934029572035702834234092834" : {
"street" : "123 Baker St"
},
"0904958304959879873876862378" : {
"street" : "123 Baker St"
}
}
}
行<在现实世界中,你不希望改变那些地址是一个很好的例子b / c,但想想我做的那一刻。如何让所有文档更改嵌套“地址”对象中的所有“街道”值,而不必通过OID进行OID操作?
答案 0 :(得分:-1)
我想你知道UUID:P它不是一个数组,而是嵌套的文档结构,它来自更新命令,如:
db.mycollection.update({}, {$set : {"addresses.0934029572035702834234092834.street" : "124 Baker St"}}, {multi: true});