考虑此文件:
{
"_id" : ObjectId("54d0a5cdc9311cad167f55d5"),
"Title" : "Add Solaris Zone",
"Type" : "System",
"Tasks" : [
{
"TaskName" : "Ask for an IP",
"TaskDescription" : "Ask to network team for an ip adress",
"Custom" : [
{
"id" : ObjectId("54d0a5cdc9311cad167f55d3"),
"name" : "ip",
"value" : ""
},
{
"id" : ObjectId("54d0a5cdc9311cad167f55d4"),
"name" : "vlan",
"value" : ""
}
],
"Prerequisites" : [ ]
}
}
是否有可能更新属性“value”,比如说field ip,用于taksname =“Ask for a IP”的任务?
我能够将属性更高一级(如TaskName),但是如果嵌入文档包含嵌入文档数组会怎样?
答案 0 :(得分:0)
通常,要更新嵌套数组中的字段,可以使用$运算符。 http://docs.mongodb.org/manual/reference/operator/update/positional/
但是,由于它只能使用一次,因此无法更新嵌套在neasted数组中的数组元素。
你能做什么(假设你知道“任务”元素的位置是)是指定位置,如:
update({...}, { $set: {"Tasks.0.Custom.$.value": "MyVal"}})