sql >> Database >  >> NoSQL >> MongoDB

Kan geen gedekte query krijgen voor shard-verzameling in MongoDB

Net als bij MongoDB 2.6 krijgt u geen volledig gedekte shard-query omdat er een extra query is om te controleren of de shard in kwestie eigenaar is van dat document (zie SERVER-5022 in de MongoDB issue tracker).

De mongos router filtert documenten die op een shard worden gevonden, maar die daar niet zouden moeten leven volgens de metadata van het shard-cluster.

Documenten kunnen op meer dan één shard voorkomen als:

  • Er is een chunkmigratie in uitvoering:documenten worden gekopieerd van een donor-shard naar een doel-shard en worden niet verwijderd uit de donor-shard totdat de chunk-migratie met succes is voltooid.

  • Documenten zijn "verweesd" op een shard als gevolg van een mislukte migratie of onvolledige opschoning. Er is een cleanupOrphaned admin commando in MongoDB 2.6 die kan worden uitgevoerd tegen een sharded mongod om verweesde documenten te verwijderen.

Deze gedekte querybeperking wordt vermeld in de Limits:Overdekte zoekopdrachten in Sharded Clusters sectie van de MongoDB-documentatie, maar moet ook worden gemarkeerd in de tutorial op Overdekte zoekopdrachten maken . Ik heb DOCS-3820 aangemaakt om dit duidelijker te maken.




  1. Mongodb:krijg alleen bladeren van de boom

  2. hoofdletterongevoelig zoeken in mongodb voor gebruikersnamen in php

  3. MongoDB db.runCommand() van C#

  4. Opslaan met Java springdata een mongoDB-document met capped array ($slice en $sort)