模式
"_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"]}})
如何同时设置多个数组的值?
答案 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_one
和array_two
。