Unter der Annahme, ich folgende Dokumentstruktur haben:Wie aktualisiert man Objekt in verschachtelten Arrays in Mongo db?
{
"name": "myProduct",
"perspectives" : [
{
"name": "p1",
"views" : [
{
"name": "v1"
},
{
"name": "v2"
}
]
},
{
"name": "p2",
"views" : [
{
"name": "v1"
},
{
"name": "v2"
}
]
}
]
}
Wie würde ich über die Aktualisierung der Dokumentstruktur gehen, um ein „alias“ Feld zu jeder der Ansichten hinzufügen?
Grundsätzlich suche ich etwas wie perspectives.views.alias: "av1" für alle perspectives.views.name: "v1".
Die resultierende Struktur würde wie folgt aussehen:
{
"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"
}
]
}
]
}
Um zu klären, würde Ich mag so etwas tun:
foreach (view in product.perspectives.views)
{
if (view.name == "p1")
view.add("alias", "av1");
}
Können Sie die Daten nicht mit der von Ihnen verwendeten Sprache abrufen, durchlaufen Sie sie wie am unteren Rand und aktualisieren Sie sie? Oder versuchen Sie es in einer einzigen Abfrage zu tun? Wenn dies der Fall ist, sieh dir das an: http://www.mongodb.org/display/DOCS/Server-side+Code+Execution –
Danke Shane! Ja, ich mache es von der Konsole als Skripte und nicht von einer App und höheren Sprache (wie zum Beispiel Java). Ich könnte jedoch die App Route gehen, wenn es einfacher/produktiver ist. – longda