sql >> Database >  >> NoSQL >> MongoDB

PyMongo Update document met meerdere records

Voor nieuwe items

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

Voor het bijwerken van bestaande items , ervan uitgaande dat u de toewijzing bijwerkt. je moet de positionele operator ($) gebruiken met de array-waarde waarnaar in de query wordt verwezen.

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

Voor het opwaarderen van items , het is een proces in 2 stappen. U moet de query eerst op dezelfde manier uitvoeren als voor het bijwerken van bestaande items zoals hierboven en het antwoord op het schrijfresultaat van de bovenstaande query inspecteren en het gewijzigde aantal controleren. Als het gewijzigde aantal 0 is, betekent dit dat we moeten opwaarderen en dan doe je het gewoon zoals in het geval van het toevoegen van nieuwe items.

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

Controleer de WriteResult , indien gewijzigd gelijk aan 0.

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

Als de nmodified gelijk is aan 1, is upserting gelukt.



  1. MongoDB-aggregatie:lopende totalen berekenen van de som van vorige rijen

  2. Gedistribueerde officiële Mongodb Kafka-bronconnector met meerdere taken werkt niet

  3. Mongodb installatie mislukt mongod

  4. Mongodb en MAMP