Производительность MongoDB с запросом $ nin - PullRequest
0 голосов
/ 17 июня 2020

У меня коллекция из 1000000 документов. Я хочу получить те документы, чей uid отсутствует в заданном uids. Поэтому я использую запрос mon go find вместе с $ nin, чтобы запрос выглядел так:

{uid: {$ nin: [1,2,3 ...... 500000}}

, но предположим, что в будущем количество моих документов увеличится, и я передам больше uid с запросом $ nin.

Дозы пн go с запросом $ nin влияют на производительность запроса? Есть ли другой способ добиться этого без использования запроса $ nin?

1 Ответ

0 голосов
/ 18 июня 2020

Запрос, извлекающий половину документов в коллекции, скорее всего, будет выполнен при сканировании коллекции. На этом этапе условия не имеют большого значения.

С учетом сказанного, индекс обычно не будет использоваться для ответа на отрицательные запросы («где X не является Y»), поэтому вам следует подумать о том, чтобы изменить формулировку ваших условий быть положительным, а не отрицательным.

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