如何在MongoDB中同时设置多个数组的值?

时间:2014-02-04 12:18:06

标签: mongodb

模式

"_id" : ObjectId(""),
"top_level_array" : [
    {
        "array_one" : [
            "1",
            "2",
            "3",
            "4",
            "5"
        ],
        "name" : "user name",
        "array_two" : [
            "1",
            "2"
        ],
        "array_three" : [
            "1",
            "2"
        ]
    },
    {
    // another document 
    },
    {
    // another document
    }
]

问题

我可以使用:

成功设置单个数组的值
db.users.update({email_addr:"email@email.com", "top_level_array.name":"user name"},{$set:{"top_level_array.$.array_one":["just one value now"]}})

如何同时设置多个数组的值?

1 个答案:

答案 0 :(得分:0)

这对我有用:

使用逗号分隔不同的数组以进行更新,例如:

db.users.update({email_addr:"email@email.com", "top_level_array.name":"user name"},{$set:{"top_level_array.$.array_one":["just one value now"],"top_level_array.$.array_two":["another value"]}})

为了澄清此解决方案的上下文,查询是有条件的,因为它在文档中的name上搜索匹配,然后更新与name处于同一级别的数组,即array_onearray_two