полей массива могут быть индексированы как обычные полей. При индексировании MongoDB автоматически создает мультииндексы для полей массивов.
db.contents.find({title:{$regex: /arnab/i}, tags:{$regex: /Times/i}})
case insensitive
contains
поиск с использованием регулярных выражений.
Из официальных документов:
Для случая нечувствительных регулярных выражений запросов, эти запросы обычно не может эффективно использовать индексы.
Таким образом, созданный вами индекс не может быть использован с этим запросом.
Поисковые запросы, основанные на регулярном выражении, лучше всего используют индексы, если поиск чувствителен к регистру. Например. db.contents.find({title:{$regex: /arnab/}, tags:{$regex: /Times/}})
.
И даже лучше, если поиск starts with (Prefix Regex)
вместо contains
. Например. db.contents.find({title:{$regex: /^arnab/}, tags:{$regex: /^Times/}})
.