sql >> Database teknologi >  >> NoSQL >> MongoDB

PyMongo Opdater dokument med flere poster

For nye varer

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

Til opdatering af eksisterende elementer , forudsat at du opdaterer tildeling. du skal bruge positional operator($) med matrixværdi, der refereres til i forespørgslen.

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

Til at ophæve elementer , det er en 2-trins proces. Du skal først køre forespørgslen på samme måde, som du gør for at opdatere eksisterende elementer som ovenfor, og inspicere skriveresultatsvaret fra ovenstående forespørgsel og kontrollere det ændrede antal. Hvis det ændrede antal er 0, betyder det, at vi skal ophæve, og så vil du bare gøre det som i tilfældet med at tilføje nye elementer.

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

Tjek WriteResult , hvis nmodificeret lig med 0.

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

Hvis den nmodificerede er lig med 1, lykkedes det at upsertere.



  1. Forstå og administrere diskplads på din MongoDB-server

  2. Ubehandlet løfteafvisning:Fejl:URL forkert udformet, kan ikke parses

  3. Hvordan evaluerer MongoDB flere $eller udsagn?

  4. MongoDB E11000 duplikatnøglefejl