2012-05-21 2 views
1

В более раннем question я узнал, что MongoDB выполняет несколько запросов для каждого оператора $or и что дубликаты отбрасываются при последующей обработке. Как выполняется запрос $and?

Есть ли какая-то оптимизация, если первый оператор FALSE, что документ отбрасывается?

ответ

2

Оператор $ и значительно отличается от оператора $ или. Поскольку $ и является ограничивающим по определению, любое одиночное предложение $ и выражения может использоваться как единственный запрос для извлечения документов для дальнейшей оценки. MongoDB анализирует доступные индексы для оптимизации и выбора запроса для запуска. Затем каждый результат оценивается по отношению к И остальных позиций. Как вы, наверное, догадались, это значительно проще, чем оператор $ или.

+0

Я добавлю, что MongoDB делает некоторую оптимизацию в логических выражениях, надеюсь, это включает в себя оценку «множественных $ и операторов», так что отдельные термины включаются в оценку для индекса одного запроса. Я могу продолжить расследование по запросу. –

+0

Спасибо. Вы были очень полезны. –

 Смежные вопросы

  • Нет связанных вопросов^_^