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

Operacja aktualizacji Mongodb wewnątrz tablicy podrzędnej

Nie chcesz używać $set tutaj, ale $pull (zobacz dokumentację ) i dopóki możesz użyj $elemMatch aby dokładniej sprecyzować zapytanie, nie musisz tego robić.

Poniższe polecenie ściągnęłoby wszystkie powiadomienia o dodaniu znajomych za pomocą {"sender": "safari"} z podtablicy dokumentów pasujących do {"username": "amitverma"}

db.yourcollection.update({"username": "amitverma"}, { 
  $pull: {"notifications.notifications_add_friend": {"sender": "safari"}}
})

Jeśli chodzi o Twój komentarz, jeśli chcesz zaktualizować konkretny element, chciałbyś użyj $set w połączeniu z $elemMatch oraz operator pozycyjny $ . Na przykład coś takiego:

db.yourcollection.update({
  "username": "amitverma", 
  "notifications.notifications_add_friend": {
    $elemMatch: {"sender": "safari"}
  }
}, {
  $set: {
    "notifications.notifications_add_friend.$.isUnread": false
  }
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Unikalne dokumenty używające wielu wartości w schemacie Mongoose

  2. Jaka jest różnica między $near i $nearSphere w Mongo?

  3. Jak wyświetlić przesłany obraz w zapleczu Keystonejs?

  4. jak uniemożliwić logowanie do konsoli przy połączeniu z mongodb z javy?

  5. mongo znajdź zapytanie na joda datetime