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

Schreibe einen Kommentar