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

mongodb sortering og regex-forespørgsel på en effektiv måde

Du kan prøve at oprette et tekstindekscountry_lc , region_lc og city_lc felter:

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

Tekstindeks er en ny funktion i MongoDB 2.4. De blev tilføjet for at understøtte tekstsøgning af strengindhold i dokumenter i en samling. Tag et kig på den officielle dokumentation for præstationstip.

Desuden kan du prøve at omskrive forespørgslen som

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 })

(Forsigtig :Dette svarer eller svarer ikke til din forespørgsel, afhængigt af strukturen af ​​dokumenterne.)



  1. MongoDB tællesamling Node.js

  2. pymongo kan ikke oprette forbindelse til databasen på fjernserveren

  3. MongoDB:krydssamlingsforespørgsler

  4. gemmer tidsserier i redis