Как можно сделать сортировку в MongoDB по отношению к другим коллекциям данных - PullRequest
0 голосов
/ 13 марта 2019

У меня три коллекции.

товар

{
_id
}

Пользователь

{
_id
}

item_user_info

{
_id
item_id (FK item)
user_id (FK user)
}

Мне нужно отсортировать документы из коллекции элементов по приоритету, где приоритет:
- Если комбинация item_id и переданного user_id существует в item_user_info, то приоритет = 1, иначе 0.

Вопрос: Каким будет запрос?

Я также могу изменить схему, если вы предложите, и если это ускорит запрос.

Примечание: количество пользователей и предметов возрастет в миллионах.

1 Ответ

0 голосов
/ 15 марта 2019

Добавьте поле с именем priority, заполните его в обратном вызове, установив его в 1 или 0 в соответствии с правилами, которые вы описали. При получении данных сортируйте по этому полю. Вы также можете рассмотреть возможность добавления индекса на него.

Тем не менее, выбранная вами схема не очень подходит для MongoDB. Скорее всего, вы сможете более эффективно запрашивать данные, переосмысливая способы управления связями.

...