Я создаю платформу, где люди могут делиться своими мемами. На одной странице я хочу показать им, кто самые популярные участники на платформе. Итак, существует коллекция 'meme' и 'user'
, например,
. Существует два контента с одинаковыми идентификаторами:
{
_id: 1,
username: "name",
bio: "bio",
image: "url",
};
memes
{
_id: 0,
user_id: 1,
image: "meme1.jpg",
likes: [
{
user_id: 4
}
]
},
{
_id: 1,
user_id: 1,
image: "meme2.jpg",
likes: [
{
user_id: 5
},
{
user_id: 6
}
]
}
и я хочу вывести что-то вроде этого
{
user_id:1,
username:"name"
likes:3,
}
Я написал этот запрос, используя агрегатные функции, но я не понимаю, как идентифицировать идентификаторы одинаковые или нет?
meme
.aggregate([
{
$lookup: {
from: "users",
localField: "user_id",
foreignField: "_id",
as: "userDetails",
},
},
{
$project: {
user_id: "$user_id",
username: "$userDetails.username",
likes: {
$size: "$likes",
},
},
},
{
$sort: { likes: 1 },
},
])
.exec()
.then((result) => {
console.log(result);
});