假設我有以下的文檔結構:如何更新mongo db中嵌套數組中的對象?
{
"name": "myProduct",
"perspectives" : [
{
"name": "p1",
"views" : [
{
"name": "v1"
},
{
"name": "v2"
}
]
},
{
"name": "p2",
"views" : [
{
"name": "v1"
},
{
"name": "v2"
}
]
}
]
}
我怎麼會去更新文檔結構的「別名」字段添加到每個視圖?
基本上我正在尋找類似perspectives.views.alias的東西:「av1」適用於所有perspectives.views.name:「v1」。
所形成的結構是這樣的:
{
"name": "myProduct",
"perspectives" : [
{
"name": "p1",
"views" : [
{
"name": "v1",
"alias": "av1"
},
{
"name": "v2",
"alias": "av2"
}
]
},
{
"name": "p2",
"views" : [
{
"name": "v1",
"alias": "av1"
},
{
"name": "v2",
"alias": "av2"
}
]
}
]
}
爲了澄清,我想要做這樣的事情:
foreach (view in product.perspectives.views)
{
if (view.name == "p1")
view.add("alias", "av1");
}
難道你不能用你正在使用的任何語言來獲取數據,就像你在底部一樣循環它並更新它?或者你想在單個查詢中做到這一點。如果是這種情況,請查看:http://www.mongodb.org/display/DOCS/Server-side+Code+Execution – 2010-08-26 21:55:41
謝謝Shane!是的,我是從控制檯作爲腳本而不是從應用程序和更高級別的語言(例如Java)來完成它。如果它最終變得更容易/更有效率,我可能會去應用程序路線。 – longda 2010-08-27 17:58:31