sql >> Databasteknik >  >> NoSQL >> MongoDB

PyMongo Uppdatera dokument med flera poster

För nya föremål

db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment,"price":initial_share_price}}})

För att uppdatera befintliga objekt , förutsatt att du uppdaterar tilldelningen. du måste använda positionsoperator($) med arrayvärde som refereras till i frågan.

db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})

För att upphäva objekt , det är en process i två steg. Du måste först köra frågan på samma sätt som du gör för att uppdatera befintliga objekt enligt ovan och inspektera skrivresultatsvaret från ovanstående fråga och kontrollera det ändrade antalet. Om det ändrade antalet är 0 betyder det att vi måste upphäva och då gör du det som när du lägger till nya objekt.

db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})

Kontrollera WriteResult , om nmodifierad lika med 0.

db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment2,"price":initial_share_price}}})

Om den nmodifierade är lika med 1, lyckades upserteringen.



  1. Node.js filuppladdning (Express 4, MongoDB, GridFS, GridFS-Stream)

  2. Hur konverterar man mongo ObjectId .toString utan att inkludera 'ObjectId()'-omslaget -- bara värdet?

  3. mongo hitta fråga på joda datetime

  4. MongoDB NOW Aggregationsvariabel