MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongodb sort и regex заявка по ефективен начин

Можете да опитате да създадете текстов индекс на country_lc , region_lc и city_lc полета:

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

Текстови индекси са нова функция в MongoDB 2.4. Те бяха добавени, за да поддържат текстово търсене на низово съдържание в документи на колекция. Моля, разгледайте официалната документация за съвети за ефективност.

Освен това можете да опитате да пренапишете заявката като

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

(Внимание :Това е или не е еквивалентно на вашата заявка, в зависимост от структурата на документите.)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. проблем с отворена връзка на mongodb

  2. MongoDB - Вмъкнете, ако не съществува, в противен случай пропуснете

  3. Как да извлека последния обект на масив във вграден документ в Mongoose?

  4. Как да заявите документи в mongodb (pymongo), където всички ключови думи съществуват в поле?

  5. mongodb:намиране на най-високата числова стойност на колона