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

Zaktualizuj element w tablicy, jeśli istnieje, wstaw inny element w tej tablicy w MongoDb

Użyj $addToSet zamiast $push .

db.push.update(
    { _id: 5 },
    { $addToSet: { "quizzes": {"wk": 6.0, "score": 8.0}, "play": {"wk": 6.0, "score": 8.0} } }
)

EDYTUJ:

Nie ma prostego wbudowanego podejścia do warunkowej aktualizacji poddokumentu w polu tablicy według określonej właściwości. Jednak mała sztuczka może załatwić sprawę, wykonując dwa polecenia po kolei.

Na przykład:Jeśli chcemy zaktualizować quizzes pole z obiektem { "wk": 7.0, "score": 8.0 } , możemy to zrobić w dwóch krokach:

Krok 1: $pull wyślij pod-dokumenty z quizzes tablica, gdzie "wk": 7.0 . (Nic się nie dzieje, jeśli nie znaleziono pasującego dokumentu podrzędnego ).

db.push.update(
    { _id: 5 },
    { $pull: { "quizzes": { "wk": 7.0 } } }
)

Krok 2: $addToSet dokument podrzędny.

db.push.update(
    { _id: 5 },
    { $addToSet: { "quizzes": {"wk": 7.0, "score": 8.0} } }
)

Możesz połączyć powyższe dwa polecenia aktualizacji za pomocą bulk.find().update()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zapewnić unikalny element w tablicy opartej na określonych polach - mongoDB?

  2. Jak używać modyfikatora aktualizacji $push w MongoDB i C# podczas aktualizowania tablicy w dokumencie?

  3. Konfigurowanie alertów dotyczących metryk MongoDB

  4. Słownik Pythona:usuwanie u' chars

  5. $set odpowiednik MongoDb w jego sterowniku java