sql >> Database >  >> NoSQL >> MongoDB

mongodb sorteer en regex query op een efficiënte manier

Je zou kunnen proberen een tekstindex te maken op de country_lc , region_lc en city_lc velden:

db.reviews.ensureIndex( { "country_lc": "text" } )
db.reviews.ensureIndex( { "region_lc": "text" } )
db.reviews.ensureIndex( { "city_lc": "text" } )

Tekstindexen zijn een nieuwe functie in MongoDB 2.4. Ze zijn toegevoegd om het zoeken naar tekst van tekenreeksinhoud in documenten van een verzameling te ondersteunen. Bekijk de officiële documentatie voor prestatietips.

Bovendien kunt u proberen de query te herschrijven als

db.location.find(
     { "docType": {"$in": [ "country", "region", "city" ]},
       "$or": [
         { "country_lc": /^unit/ },
         { "region_lc": /^unit/ },
         { "city_lc": /^unit/ },
       ]
    }, 
    { "country": 1, "region": 1, "city": 1, "docType" :1 }
   ).sort({ "country_lc" :1, "region_lc": 1, "city_lc":1 })

(Let op :Dit is al dan niet gelijk aan uw vraag, afhankelijk van de structuur van de documenten.)



  1. Hoe kan ik detecteren of een mongodb-serializer al is geregistreerd?

  2. Hoe zoek je naar sleutels met een waarde? Haal bijvoorbeeld alle SLEUTELS op waarvan de waarde een of andere waarde is

  3. Hoe krijg ik de object-ID in PyMongo na een invoeging?

  4. Gebeurtenisregistratie met gedistribueerde database voor node.js (MongoDB?)