MongoDB: Wie aktualisiere ich ein einzelnes Subelement in einem Array, auf das der Index innerhalb des Arrays verweist?
Ich versuche zu aktualisieren Sie ein einzelnes Element enthalten, in einem array in einer mongodb-Dokument. Ich will auf das Feld mit seiner array-index - (die Elemente im array nicht über alle Felder, die ich garantieren kann, wird unique identifiers). Scheint, wie dies sollte einfach zu tun, aber ich kann nicht herausfinden, die syntax.
Hier ist, was ich will zu tun, pseudo-json.
Bevor:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
Nach:
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
Scheint, wie die Abfrage sollte so etwas wie dieses:
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
Aber das funktioniert nicht. Ich habe übrigens auch lange auf der Suche die mongodb-Dokumente, und versuchen, verschiedene Variationen über diese syntax (z.B. mit Hilfe $slice
usw.). Ich finde keine klare Erklärung, wie das zu erreichen ist diese Art von update in MongoDB.
InformationsquelleAutor der Frage Abe | 2012-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als erwartet, die Abfrage ist einfach, sobald Sie wissen, wie. Hier ist die syntax in python:
InformationsquelleAutor der Antwort Abe
Update von einem array-element referenziert durch einen index (z.B. 1 ) in der Mongo-Shell kann auch direkt durch Angabe der index-Wert:
InformationsquelleAutor der Antwort tomaskazemekas
Im mongo-style, die mit '$' positionalen operator.
Überprüfen Sie heraus dieses link für details.
InformationsquelleAutor der Antwort Doel
InformationsquelleAutor der Antwort znbwo