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

MongoDB, изпълнение на заявка чрез регулярен израз в индексирани полета

Всъщност според документацията,

Ако за полето съществува индекс, тогава MongoDB съпоставя регулярния израз със стойностите в индекса, което може да бъде по-бързо от сканирането на колекция. По-нататъшна оптимизация може да възникне, ако регулярният израз е „префиксен израз“, което означава, че всички потенциални съвпадения започват с един и същ низ. Това позволява на MongoDB да конструира „диапазон“ от този префикс и да съвпада само с онези стойности от индекса, които попадат в този диапазон.

http://docs.mongodb.org/manual/reference/operator/query/regex/#index-use

С други думи:

За /Jon Skeet/ regex ,mongo ще сканира напълно ключовете в индекса, след което ще извлече съвпадащите документи, което може да бъде по-бързо от сканирането на колекцията.

За /^Jon Skeet/ regex ,mongo ще сканира само диапазона, който започва с регулярния израз в индекса, което ще бъде по-бързо.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb c# драйвер за намиране на елемент в масив по стойност на полето

  2. Mongodb заявка конкретен месец|година не дата

  3. objasni() в Mongodb:разлики между nscanned и nscannedObjects

  4. Mongoose:Сравненията на ObjectId се провалят непоследователно

  5. Пейджиране на базата на диапазон mongodb