sql >> Databáze >  >> NoSQL >> MongoDB

mongodb třídit a regex dotazovat efektivním způsobem

Můžete zkusit vytvořit textový index na country_lc , region_lc a city_lc pole:

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

Textové indexy jsou novou funkcí v MongoDB 2.4. Byly přidány pro podporu textového vyhledávání obsahu řetězce v dokumentech kolekce. Podívejte se prosím na oficiální dokumentaci pro rady ohledně výkonu.

Navíc můžete zkusit přepsat dotaz jako

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

(Pozor :Toto je nebo není ekvivalentní vašemu dotazu v závislosti na struktuře dokumentů.)



  1. Mohu číst soubor csv uvnitř souboru Javascript Mongo Shell?

  2. Jak implementovat oAuth2 spolu s ověřováním JWT v jarním bootování?

  3. Vnořený dokument MongoDB NodeJS Return

  4. Heroku rake task neinicializovaná konstanta pro model MongoMapper