$ lookup目标数组始终为空

时间:2018-11-21 09:02:40

标签: node.js mongodb

我有两个表:AchievementsAchievementcompleteds

Achievements结构:_id title

Achievementcompleted结构:_id achievement_id user_id

现在,我需要在user完成成就时获取数据,并显示未完成成就的数据。这里有一个成就列表,需要显示完成了哪些未完成。我正在尝试这样做:

    Achievement.aggregate([
    {
        $lookup: {
            from: "achievementcompleteds", // collection name in db
            localField: "_id",
            foreignField: "achievement_id",
            as: "completed"
        }
    }
]).then((results) => {});

但是完成的内容总是空的

1 个答案:

答案 0 :(得分:0)

您的查询是完美的。因此,您需要检查以下问题

  1. achievement_id :应为ObjectId
  2. 来自:集合名称应与mongodb中显示的collection_name相同
  3. 版本:$查找在mongo 3.4+版本上可用