У меня есть две коллекции. Коллекция 'пользователей' и коллекция 'событий'. В коллекции событий есть первичный ключ, который указывает, какому пользователю принадлежит событие.
Я бы хотел посчитать, сколько событий у пользователя соответствует определенному условию.
В настоящее время я выполняю это как:
db.users.find({ usersMatchingACondition }).forEach(user => {
const eventCount = db.events.find({
title: 'An event title that I want to find',
userId: user._id
}).count();
print(`This user has ${eventCount} events`);
});
В идеале я хотел бы получить массив или объект с идентификатором пользователя и количеством событий, которые имеет этот пользователь.
С 10 000 пользователей - это, очевидно, производит 10 000 запросов, и я думаю, что это можно сделать намного эффективнее!
Я предполагаю, что это легко с каким-то агрегированным запросом - но я не знаком с синтаксисом и изо всех сил пытаюсь обернуть его вокруг.
Любая помощь будет принята с благодарностью!