Итак, у меня есть этот код:
Achievement.aggregate([
{"$match": {}},
{
$lookup: {
from: "achievementcompleteds", // collection name in db
localField: "_id",
foreignField: "achievement_id",
as: "completed"
}
}]).then((results) => {
Итак, что он делает, он показывает достижения пользователю и также показывает, завершен ли он рядом с достижением.Но проблема в том, что если один пользователь завершает достижение, то для каждого пользователя показывается, что оно завершено.Поэтому мне нужно как-то получить achievementcompleteds
на user_id
.
achievemets
: _id
title
и т. Д.
achievementcompleteds:
_id
achievement_id
user_id
РЕДАКТИРОВАТЬ
Хорошо, поэтому этот код:
Achievement.aggregate([
{
"$lookup": {
"from": "achievementcompleteds", // collection name in db
"localField": "_id",
"foreignField": "achievement_id",
"as": "completeds"
}},
{ "$match": {"completeds.user_id": user._id}}
]).then((results) => {
возвращает мне только достижения для пользователя, которые завершены.Поэтому проблема в том, что мне нужно вернуть список всех достижений прямо сейчас.