У меня здесь немного проблем. Поэтому я хочу показать профиль пользователя. Пользователь принадлежит к группам. Зарегистрированный пользователь может видеть детали любых групп, которые у них есть общего. Вот некоторые примеры данныхMongoDB: проекция для соответствия нескольким
{
_id: "1234",
battletag: "Fake#1234",
guilds: [{
name: "Lok'Narosh!",
rank: 4,
roles: ['casual']
}, {
name: "Warlords of Draenor",
rank: 2,
roles: ['PvP', 'raider']
}, {
name: "Lok'Tar Ogar!",
rank: 3,
roles: ['raider']
}],
}
я могу получить группы текущего пользователя и уменьшить его ['Lok'Narosh!', 'Warlords of Draenor']
, а это означает, что Lok'tar Ogar
должны быть исключены из результатов.
Основная проблема, с которой я сталкиваюсь, заключается в том, что большинство операций, которые я знаю, возвращают только результат. Например, с $elemMatch:
Оператор $ elemMatch ограничивает содержимое поля из результатов запроса содержит только первый элемент, соответствующий условию $ elemMatch.
Есть ли способ, что я могу отфильтровать этот список содержит всех совпадающих элементы от списка элементов?
на стороне клиента или сторона сервера ? Если последнее, то вам, вероятно, понадобится использовать структуру агрегации. –