我想在文档中添加一个数组,其中options.value ='选项3'。
{
"category":"Lifestyle",
"title":"Title 2",
"_id":{
"$oid":"53fcbe08f29403168bccc6a9"
},
"description":"Description 2",
"postedOn":"Tue Aug 26 22:34:08 IST 2014",
"options":[
{
"id":"ede7c211751e4028513fd876ad744ebc7b1035ed752abaa88f07ad47",
"value":"option 3"
},
{
"id":"7615718e768bcb1530119a4a02fedfc205bbabfef417047e8388d27c",
"value":"option 4"
}
]
}
请在mongo shell中建议一种方法。
答案 0 :(得分:3)
我将重新提出你的问题,以确保我清楚你想要什么。
您想获取上面的文档并仅修改值等于“选项3”的子文档。
即。你想采取:
{
"id":"ede7c211751e4028513fd876ad744ebc7b1035ed752abaa88f07ad47",
"value":"option 3"
},
将其改为:
{
"id":"ede7c211751e4028513fd876ad744ebc7b1035ed752abaa88f07ad47",
"value":"option 3",
"array":["Value1", "Value2"]
},
但是你不想改变数组中的所有子文档。
假设我的解释是正确的,那么我认为你想要的是位置算子:
http://docs.mongodb.org/manual/reference/operator/update/positional/
您应该可以执行以下操作:
db.collection.update({"options.value":"option 3"}, {$set:{"options.$.array":["Value1","Value2"]}}, false, false)