Монго-запрос на количество элементов в суб-коллекции - PullRequest
0 голосов
/ 01 апреля 2012

Кажется, это должно быть очень просто, но я не могу заставить его работать. Я хочу выбрать все документы A, в которых есть один или несколько элементов B в подколлекции.

Например, если в документе Магазина была коллекция Сотрудников. Я просто хочу найти магазины с 1 или более сотрудниками.

Я пробовал что-то вроде:

{Store.Employees:{$size:{$ne:0}}}

или

{Store.Employees:{$size:{$gt:0}}}

Просто не могу заставить его работать.

1 Ответ

0 голосов
/ 01 апреля 2012

Это не поддерживается.В основном вы можете получить только документы, размер массива которых равен значению.Поиск по диапазону, который вы не можете выполнить.

Обычно люди делают то, что они кэшируют длину массива в отдельном поле в том же документе.Затем они индексируют это поле и делают очень эффективные запросы.

Конечно, это требует от вас немного больше работы (не забывая поддерживать актуальность этого поля длины).

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