sql >> Database >  >> NoSQL >> MongoDB

Is het mogelijk om de sleutel te definiëren bij het invoegen in mongodb

$push wordt gebruikt om een ​​waarde aan een array toe te voegen. In uw voorbeeld, measurements is een array en Mongo voegt $newData toe als zijn eerste element. Dit verklaart de 0 index tussen measurements en levels . In uw gewenste resultaat, measurements is een object gelijk aan $newData (d.w.z. het heeft een levels eigenschap, die op zijn beurt een array van objecten bevat).

Een van de volgende voorbeelden zou moeten bereiken wat u wilt:

// 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)

Opmerking:$push zal flexibeler zijn als u gegevens wilt toevoegen aan toekomstige updates, terwijl $set zal natuurlijk het gegeven veld overschrijven.




  1. MongoDB batch-insert werkt niet met java-stuurprogramma

  2. C# MongoDB - Hoe kan ik een item toevoegen aan en verwijderen uit meerdere geneste array-elementen?

  3. MongoDB:zoek subdocument in parameters voor matrixovereenkomst

  4. Krijg alle sleutels in de Redis-database met python