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

Nie można uzyskać objętego zapytania dotyczącego kolekcji podzielonej na fragmenty w MongoDB

Podobnie jak w MongoDB 2.6, nie otrzymasz w pełni pokrytego zapytania podzielonego na fragmenty, ponieważ istnieje dodatkowe zapytanie, aby sprawdzić, czy dany fragment jest właścicielem tego dokumentu (patrz SERVER-5022 w narzędziu do śledzenia problemów MongoDB).

mongos router filtruje dokumenty, które znajdują się na shard, ale nie powinny tam znajdować się, zgodnie z metadanymi klastra podzielonego na fragmenty.

Dokumenty mogą istnieć w więcej niż jednym fragmencie, jeśli:

  • Istnieje migracja fragmentów w toku:dokumenty są kopiowane z fragmentu dawcy do fragmentu docelowego i nie są usuwane z fragmentu dawcy, dopóki migracja porcji nie zostanie pomyślnie zakończona.

  • Dokumenty zostały „osierocone” we fragmencie w wyniku nieudanej migracji lub niepełnego czyszczenia. Istnieje cleanupOrphaned polecenie administratora w MongoDB 2.6, które można uruchomić na sharded mongod aby usunąć osierocone dokumenty.

To ograniczenie dotyczące zapytań jest opisane w Limitach:Objęte zapytania w klastrach podzielonych na fragmenty sekcji dokumentacji MongoDB, ale powinno być również wyróżnione w samouczku na temat Tworzenie objętych zapytań . Podniosłem DOCS-3820 aby uczynić to bardziej oczywistym.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Oplog MongoDB zawiera rekordy z kropkami w nazwach kluczy, o które nie można zapytać, afaict

  2. MongoDB $anyElementTrue

  3. Mam zapytanie mongodb i chcę znaleźć dokładnie pasujące słowo „Zatwierdzone”

  4. 3 sposoby na uzyskanie tygodnia z daty w MongoDB

  5. Zapytania dynamiczne w MongoDB i Node.js