Лучше использовать $ in или $ gt, $ lt ($ gte, $ lte)? - PullRequest
0 голосов
/ 12 февраля 2019

Рассмотрим коллекцию с полем age.Значения age относятся к известному диапазону значений Integer.

При запросе пользователей в возрасте от 20 до 23 лет запрос можно записать в виде:

"age": {
    "$gte": 20
    "$lte": 23,
},

Поскольку мы знаем возрастной диапазон, запрос также можно записать в виде:

"age": {
    "$in": [20,21,22,23]
},

Производительность запроса лучше при использовании $in или $gte, $lte?

1 Ответ

0 голосов
/ 12 февраля 2019

Я не думаю, что это большая разница в производительности между $in и $gte, когда у вас небольшой массив.Очевидно, что когда вы используете массив с большим количеством элементов в операторе $in, лучше использовать $gte, потому что mongo не нужно сравнивать значение с каждым значением в массиве, это быстрее, просто используйте условное выражение с двумя значениями.Более того, для удобства чтения лучше использовать $gte и $lte.Итак, в общем случае я бы использовал $gte и $lte.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...