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

Indeks w polu ts w oplog.rs nie jest aktualizowany

Jak już odkryłeś, indeksy pomocnicze nie są obsługiwane w kolekcjach systemowych, takich jak local.oplog.rs i *.system.profile . W MongoDB 2.4 i starszych indeksy wyglądały na utworzone, ale nigdy nie były aktualizowane. Nowsze wersje MongoDB (2.6+) zwracają błąd, jeśli próbujesz bezpośrednio zaktualizować kolekcję systemową za pomocą nieobsługiwanej zmiany, takiej jak próba utworzenia dodatkowych indeksów.

oplog.rs kolekcja jest zdecydowanie „specjalna”, ponieważ jej przeznaczeniem jest wyłącznie replikacja. Wewnętrzne mechanizmy replikacji dokonują pewnych założeń dotyczących oczekiwanych operacji dla oploga na tej podstawie. Na przykład replikacja wymaga tylko wstawienia wpisów oplog — w przeciwieństwie do ograniczonej kolekcji, którą możesz utworzyć samodzielnie, wpisy oplog są nigdy zaktualizowany.

Oczekuje się, że aplikacje będą czytać oplog za pomocą kursora z możliwością śledzenia, jeśli muszą podążać za nowymi wpisami wstawionymi do oploga, lub szukać za pomocą $natural zamówienie.

Samouczek dotyczący kursora ogonowego zawiera więcej szczegółów na temat użycia, ale kilka szczególnych punktów, na które należy zwrócić uwagę, to:

  • Kursory ogonowalne nie używają indeksów i zwracają dokumenty w naturalnej kolejności.
  • Ponieważ kursory tailable nie używają indeksów, początkowe skanowanie zapytania może być kosztowne; ale po początkowym wyczerpaniu kursora późniejsze pobieranie nowo dodanych dokumentów jest niedrogie


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Klonowanie instancji MongoDB lub zestawu replik

  2. Trendy NoSQL — MongoDB, Cassandra, CouchDB i Riak

  3. Połącz dwa zapytania OR z operatorem AND w Mongoose

  4. MongoDb C# GeoNear Query Construction

  5. MongoDB $indexOfCP