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

Не може да се получи покрита заявка за шардирана колекция в MongoDB

Както при MongoDB 2.6, няма да получите напълно покрита шард заявка, защото има допълнителна заявка, за да проверите дали въпросният шард притежава този документ (вижте SERVER-5022 в програмата за проследяване на проблеми MongoDB).

mongos рутерът филтрира документи, които се намират на шард, но които не трябва да живеят там според метаданните на шардирания клъстер.

Документите могат да съществуват в повече от един шард, ако:

  • Има миграция на парче в процес на изпълнение:документите се копират от донорен сегмент в целеви сегмент и не се премахват от донорния сегмент, докато миграцията на част не завърши успешно.

  • Документите са „осиротели“ на фрагмент в резултат на неуспешна миграция или непълно почистване. Има cleanupOrphaned администраторска команда в MongoDB 2.6, който може да се изпълнява срещу разделен mongod за изтриване на осиротели документи.

Това покрито ограничение на заявката е отбелязано в Ограничения:Покрити заявки в разделени клъстери раздел на документацията на MongoDB, но също така трябва да се подчертае в урока за Създаване на обхванати заявки . Повдигнах DOCS-3820 за да стане това по-очевидно.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Пакетна актуализация с Mongoose

  2. Mongoose:няма достъп до попълнената стойност

  3. Синхронизирайте бази данни на mongo на различни сървъри

  4. Множество броя с една заявка в mongodb

  5. Изхвърлете колекцията Mongo във формат JSON