MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Dokument aktualizacji PyMongo z wieloma rekordami

Nowe przedmioty

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

Do aktualizacji istniejących elementów , zakładając, że aktualizujesz przydział. musisz użyć operatora pozycyjnego ($) z wartością tablicy, do której odwołuje się zapytanie.

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

Do odwracania elementów , jest to proces dwuetapowy. Najpierw musisz uruchomić zapytanie w taki sam sposób, jak w przypadku aktualizacji istniejących elementów, jak powyżej, i sprawdzić odpowiedź wyniku zapisu z powyższego zapytania i sprawdzić zmodyfikowaną liczbę. Jeśli zmodyfikowana liczba wynosi 0, oznacza to, że musimy upsertować, a następnie zrobisz to tak, jak w przypadku dodawania nowych elementów.

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

Sprawdź WriteResult , jeśli nmmodyfikowana równa 0.

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

Jeśli nmodified jest równe 1, upserterowanie powiodło się.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb - Mapa-Reduce - Pełne dane nie są zwracane

  2. Jak mogę obliczyć całkowitą dodatnią, całkowitą ujemną cenę i sumę za pomocą Node.js i Mongoose?

  3. NodeJS Mongo - Mongoose - dynamiczna nazwa kolekcji

  4. Mongodb 4+ findOneAndUpdate() returnNewDocument nie działa

  5. Jak ustawić unikalne ograniczenie dla pola w dokumencie zagnieżdżonym w tablicy?