所以我在这里有这段代码:
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) => {
仅向我返回已完成用户的成就。因此,问题在于我现在没有返回所有成就列表。