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 shardetmongod
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.