sql >> Database >  >> NoSQL >> MongoDB

Index op ts-veld in oplog.rs is niet bijgewerkt

Zoals je hebt ontdekt, worden secundaire indexen niet ondersteund op systeemverzamelingen zoals local.oplog.rs en *.system.profile . In MongoDB 2.4 en ouder lijkt het alsof de indexen zijn gemaakt, maar nooit zijn bijgewerkt. Nieuwere versies van MongoDB (2.6+) retourneren een fout als u probeert een systeemverzameling rechtstreeks bij te werken met een niet-ondersteunde wijziging, zoals het maken van extra indexen.

De oplog.rs collectie is absoluut "speciaal" omdat het bedoelde gebruik alleen voor replicatie is. De interne replicatie maakt op basis hiervan enkele aannames over verwachte bewerkingen voor de oplog. Replicatie hoeft bijvoorbeeld alleen oplog-items in te voegen -- in tegenstelling tot een gelimiteerde verzameling die u zelf kunt maken, zijn oplog-items nooit bijgewerkt.

Van toepassingen wordt verwacht dat ze de oplog lezen met een staartbare cursor als ze nieuwe items moeten volgen die in de oplog zijn ingevoegd, of om een ​​zoekopdracht uit te voeren met behulp van $natural bestellen.

De tutorial met de aanpasbare cursor gaat dieper in op het gebruik, maar er zijn een paar aandachtspunten:

  • Tailable cursors gebruiken geen indexen en retourneren documenten in natuurlijke volgorde.
  • Omdat staartbare cursors geen indexen gebruiken, kan de eerste scan voor de zoekopdracht duur zijn; maar nadat de cursor aanvankelijk is uitgeput, is het later ophalen van de nieuw toegevoegde documenten goedkoop


  1. Mongodb Waarde verhogen binnen geneste array

  2. Versleuteling gebruiken om uw MongoDB-gegevens te beschermen

  3. MongoDB-query's loggen met Spring Boot

  4. Hoe de functie aan te roepen na voltooiing van asynchrone functies in de lus?