Как MongoDB оценит этот запрос:
db.testCol.find(
{
"$or" : [ {a:1, b:12}, {b:9, c:15}, {c:10, d:"foo"} ]
});
При сканировании значений в документе, если первый оператор OR равен TRUE, будут ли оцениваться и другие операторы?
Логически, если MongoDB оптимизирован, другие значения в операторе OR не должны оцениваться, но я не знаю, как реализован MongoDB.
UPDATE:
Я обновил свой запрос, потому что он был неправильным и не объяснял правильно, что я пытался выполнить. Мне нужно найти набор документов, которые имеют разные свойства, и, если будет найдена комбинация этих точных , документ должен быть возвращен.
SQL-эквивалент моего запроса:
SELECT * FROM testCol
WHERE (a = 1 AND b = 12) OR (b = 9 AND c = 15) OR (c = 10 AND d = 'foo');