sql >> Databasteknik >  >> NoSQL >> MongoDB

Är det möjligt att definiera nyckeln när man infogar i mongodb

$push används för att lägga till ett värde till en array. I ditt exempel, measurements är en array och Mongo lägger till $newData som dess första element. Detta förklarar 0 index mellan measurements och levels . I önskat resultat, measurements är ett objekt som motsvarar $newData (dvs den har en levels egenskap, som i sin tur har en rad objekt inom).

Något av följande exempel bör åstadkomma vad du vill:

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

Obs:$push kommer att vara mer flexibel om du vill lägga till data med framtida uppdateringar, medan $set kommer naturligtvis att skriva över det givna fältet.




  1. Mongodb - antal objekt som använder addToSet

  2. Hur drar man en instans av ett objekt i en array i MongoDB?

  3. Hantera Python Multiprocessing med MongoDB

  4. PyMongo missköter sig med flyttal