在mongodb中更新深层嵌套文档

时间:2015-11-24 15:19:50

标签: mongodb

我有这个集合

> db.styles.find({"_id":"EP65"}).pretty();
{
    "__v" : 6,
    "_id" : "EP65",
    "colours" : {
        "GRYM" : [
            {
                "on_sale" : false,
                "size_code_id" : "XS",
                "sku" : "EP65-GRYM0"
            },
            {
                "on_sale" : false,
                "size_code_id" : "2XL",
                "sku" : "EP65-GRYM5"
            }
        ],
        "BLUT" : [
            {
                "on_sale" : false,
                "size_code_id" : "XS",
                "sku" : "EP65-BLUT0"
            },
            {
                "on_sale" : false,
                "size_code_id" : "X",
                "sku" : "EP65-BLUT1"

            }
        ]
    }
}

我想将“on_sale”重命名为“visible”,我有大约200种样式,每种样式都有一种或多种颜色。

所以基本上我想循环遍历所有样式集合,并为每个colour.key将“on_sale”重命名为“visible”

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

如文档中所述,无法重命名数组中的字段。您唯一的选择是迭代收集文档,阅读它们并使用$ unset old / $ set new operations更新每个文档。