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

usuwanie obiektu z zagnieżdżonej tablicy obiektów mongodb

Możesz to zrobić, określając coś, co pasuje do „dokumentu”, a następnie wymaganego wpisu tablicy „przesunięć” jako wyrażenia zapytania dla .update() . Następnie zastosuj pozycyjny $ operator dla dopasowanego indeksu tablicy z $pull :

db.collection.update(
 { "_id": ObjectId("59180305c19dbaa4ecd9ee59"), "shifts.timeslot": "8:00 - NOON" },
 { "$pull": { "shifts.$.volunteers": { "fullname": "Mary Mack" } } }
)

W tym przypadku jest to w porządku, ponieważ próbujesz „dopasować” tylko tablicę „zewnętrzną” w strukturze zagnieżdżonej i $pull ma własne argumenty zapytania, które identyfikują wpis w tablicy do usunięcia.

Naprawdę powinieneś być ostrożny używając "zagnieżdżonych tablic". Jak podczas $pull operacja taka działa, aktualizacje tablicy „wewnętrznej” nie są tak naprawdę możliwe, ponieważ pozycyjny $ operator dopasuje tylko „pierwszy” element, który spełnia warunek. Tak więc twój przykład "Mary Mack" w wielu zmianach pasowałby tylko do pierwszego znalezionego wpisu tablicy "shifts".



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Uruchamianie Meteor na hoście lokalnym kończy się niepowodzeniem z RangeError:port powinien być>=0 i <65536:NaN

  2. Jak przesyłać pieniądze z MongoDB?

  3. Jak używać Spring do łączenia się z MongoDB, która wymaga uwierzytelnienia?

  4. Złącze Spark Mongo, MongoShardedPartitioner nie działa

  5. MongoDB $dateToString