MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB Актуализация Deep Array

За съжаление, в момента е възможно да се използва само една позиция "$" на актуализация. Това ограничава актуализацията до единичен вграден масив, подобно на примера в документацията:http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator(От публикацията ви изглежда, че вече сте намерих това, но включих връзката в полза на всички други потребители, които четат тази публикация.)

За да направите актуализацията, ще трябва да знаете позицията на две от следните три:позицията на групата в масива "bands", позицията на албума в масива албуми или позицията на песента в масива "tracks".

Има заявка за функция за тази функционалност и тя е насрочена за версия 2.3.0 (въпреки че това подлежи на промяна).
https://jira.mongodb.org/browse/SERVER-831 „Позиционално съвпадение на оператора Вложени масиви"

За момента ще трябва да знаете позицията на поддокументите в два от трите масива:

db.music.update({genre : "Grunge", "bands.name" : "Nirvana"}, {$set:{"bands.$.albums.0.tracks.0.name":"Smells Like Teen Spirit!"}})

db.music.update({genre : "Grunge", "bands.0.albums.name" : "Nevermind"}, {$set:{"bands.0.albums.$.tracks.0.name":"Smells Like Teen Spirit!"}})

или

db.music.update({genre : "Grunge", "bands.0.albums.0.tracks.order" : 1}, {$set:{"bands.0.albums.0.tracks.$.name":"Smells Like Teen Spirit!"}})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ръководство за внедряване и поддръжка на MongoDB с помощта на Puppet:Част 1

  2. Не може да се удостовери в mongo, удостоверяването е неуспешно

  3. Проектирайте първия елемент в масива към ново поле (обединяване на MongoDB)

  4. Местоположение на базата данни mongodb на mac

  5. Как програмно предварително да разделите ключ на шард, базиран на GUID, с MongoDB