Можно ли заставить MongoDB использовать частичный индекс для поля, если запрос не соответствует выражению фильтра частичного индекса? - PullRequest
1 голос
/ 10 марта 2020

Можно ли получить запрос, возвращающий 0 результатов (если нет индекса , возможно будет хотя бы 1 результат), поскольку частичный индекс для запрашиваемого поля не включает в себя соответствующие документы ?

Сценарий, который привел к этому вопросу, имеет частичный индекс, который обеспечивает уникальность поля с фильтром exists, так что он будет игнорировать документы, для которых это поле равно null.

Было бы идеально, если бы существовал способ, при котором любые запросы в этой коллекции для null значений этого поля будут по-прежнему использовать этот частичный индекс и не возвращать результатов - избегая полного сканирования коллекции, которое действительно происходит в этом случае и приводит на очень медленный запрос.

1 Ответ

0 голосов
/ 10 марта 2020

Единственное решение, которое я вижу, - добавить условие yourField: { $exists: true } ко всем запросам, которые еще не фильтруются для этого поля. (для других полей необходимо указать c и соответствовать требованиям индекса).

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