У меня есть коллекция mongoDB с полем массива, представляющим списки, в которые входит пользователь.
user {
screen_name: string
listed_in: ['list1', 'list2', 'list3', ...] //Could be more than 10000 elements (I'm aware of the BSON 16MB limits)
}
Я использую поле * list_in *, чтобы получить список участников
db.user.find({'listed_in': 'list2'});
Мне также нужно запросить конкретного пользователя и узнать, является ли он членом определенных списков
var user1 = db.findOne({'screen_name': 'user1'});
В этом случае я получу поле * list_in * со всеми его членами.
Мой вопрос: есть ли способ предварительного вычисления пользовательских полей в mongoDB?Мне нужно было бы иметь возможность получить такие поля, как user1.isInList1 , user1.isInList2
Прямо сейчас я должен сделать это на стороне клиента путем итерациичерез массив * selected_in *, чтобы узнать, является ли пользователь членом списка «list1», но в списке * может быть тысяча элементов.