是否可以更新嵌入文档中嵌入文档的属性(每个都在数组中)?
Is it possible to update a property of an embedded document in an embedded document (each in arrays)?
考虑这份文件:
{
"_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" 的,比方说字段 ip,对于 taksname = "Ask for an IP" 的任务?
我可以更新更高一级的属性(如 TaskName),但是如果嵌入文档包含一组嵌入文档怎么办?
通常要更新嵌套数组中的字段,您可以使用 $ 运算符。
http://docs.mongodb.org/manual/reference/operator/update/positional/
但是,由于只能使用一次,因此不能更新嵌套在 neasted 数组中的数组元素。
但是您可以做的(假设您知道 "task" 元素的位置)是指定如下位置:
update({...}, { $set: {"Tasks.0.Custom.$.value": "MyVal"}})
考虑这份文件:
{
"_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" 的,比方说字段 ip,对于 taksname = "Ask for an IP" 的任务?
我可以更新更高一级的属性(如 TaskName),但是如果嵌入文档包含一组嵌入文档怎么办?
通常要更新嵌套数组中的字段,您可以使用 $ 运算符。 http://docs.mongodb.org/manual/reference/operator/update/positional/
但是,由于只能使用一次,因此不能更新嵌套在 neasted 数组中的数组元素。
但是您可以做的(假设您知道 "task" 元素的位置)是指定如下位置:
update({...}, { $set: {"Tasks.0.Custom.$.value": "MyVal"}})