sql >> Database teknologi >  >> NoSQL >> MongoDB

Kan ikke få en dækket forespørgsel til sharded collection i MongoDB

Som ved MongoDB 2.6 får du ikke en fuldt dækket sharded forespørgsel, fordi der er en ekstra forespørgsel for at kontrollere, om det pågældende shard ejer det dokument (se SERVER-5022 i MongoDB issue tracker).

mongos routeren filtrerer dokumenter, der findes på et shard, men som ikke burde leve der ifølge de sharded cluster-metadata.

Dokumenter kan eksistere på mere end ét shard, hvis:

  • Der er en chunk-migrering i gang:Dokumenter kopieres fra et donor-shard til et destinations-shard og fjernes ikke fra donor-shard, før chunk-migreringen er gennemført.

  • Dokumenter er blevet "forældreløse" på et skår som følge af en mislykket migrering eller ufuldstændig oprydning. Der er en cleanupOrphaned admin kommando i MongoDB 2.6, som kan køres mod en shardet mongod at slette forældreløse dokumenter.

Denne dækkede forespørgselsbegrænsning er noteret i grænserne:Dækkede forespørgsler i splittede klynger afsnittet i MongoDB-dokumentationen, men bør også fremhæves i selvstudiet på Oprettelse af omfattede forespørgsler . Jeg har rejst DOCS-3820 for at gøre dette mere indlysende.




  1. Opsætning af Mongo Extension til Axon Framework på fjederstøvle

  2. MongoDB:Hvordan forespørger man en tidsserie med ufuldstændige data?

  3. Sådan finder du dokumenter med nøjagtig de samme array-indgange som i en forespørgsel

  4. Hentning af længden af ​​en liste i MongoDB