MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ist es möglich, den Schlüssel beim Einfügen in Mongodb zu definieren

$push wird verwendet, um einen Wert an ein Array anzuhängen. In Ihrem Beispiel measurements ist ein Array und Mongo hängt $newData an als erstes Element. Dies erklärt die 0 Index zwischen measurements und levels . In Ihrem gewünschten Ergebnis measurements ist ein Objekt, das $newData entspricht (d.h. es hat einen levels -Eigenschaft, die wiederum ein Array von Objekten enthält).

Jedes der folgenden Beispiele sollte das erreichen, was Sie wollen:

// if $newData is {"levels": [{"level_qty":12,"level_uom":"ft"}]}
->set("measurements", $newData)

// if $newData is [{"level_qty":12,"level_uom":"ft"}]
->set("measurements.levels", $newData)

// if $newData is {"level_qty":12,"level_uom":"ft"}
->push("measurements.levels", $newData)

Hinweis:$push wird flexibler sein, wenn Sie Daten bei zukünftigen Updates anhängen möchten, während $set überschreibt natürlich das angegebene Feld.