как создать составной индекс для запросов с несколькими диапазонами столбцов

#mongodb #indexing #range #nosql

#mongodb #индексирование #диапазон #nosql

Вопрос:

Я хочу выполнить запрос диапазона для нескольких столбцов. например:

db.dmnscore.find({цена: {$ lte: 10}, «обновлено»: {«$ gte»: новая дата(1304874799000)}, «оценка»: {«$ gte»: 0, «$ lte»: 1000}).sort({оценка: -1}) Возможно ли создать правильный составной индекс для этого запроса?

Спасибо

Ответ №1:

Проще всего протестировать это самостоятельно. Создайте индекс в свойствах, затем запустите этот запрос:

 db.dmnscore.find({price:{$lte:10}, "updated" : {"$gte" : new Date(1304874799000)} ,"score" : {"$gte" : 0,"$lte" : 1000}).sort({score:-1}).explain()
  

обратите внимание на explain() в конце. Если результат содержит, что Btree у вас все хорошо, если результат содержит, что BasicCursor индекс не использовался.