mongodbnodejs查找没有从国外获取数据table

mongodb nodejs lookup does not get data from the foreign table

我正在尝试在 mongodb 中执行查找以从两个 table 中获取数据。这是我到目前为止创建的内容:

  database.collection('surveys').aggregate([
             { $lookup:
                    {
                      from: 'questions',
                      localField: '_id',
                      foreignField: 'surveyId',
                      as: 'questions'
                    }
                  }
                 ]).toArray(function(err, res) {
                 if (err) throw err;
                 console.log(JSON.stringify(res));
               });

问题是我的调查 table 的数据显示得很好,但是我的问题 table 的数据总是一个空数组,我不知道为什么。请在附件中找到我的数据库结构的两个屏幕截图。

这很好用,所以您的问题可能是调查的 _id 和问题的调查 ID 不匹配。提示:尝试使用像 Robo 3T 这样的 MongoDB 客户端来调试您的查询,而不是先在代码中进行。

db.surveys.insert([
    { "_id" : "survey_1", "title" : "test" }
])

db.questions.insert([
    { "_id" : "question_1", "isSeek" : true, "question" : "test", "surveyId" : "survey_1" }
])

db.surveys.aggregate([
    { $lookup: { 
        from: 'questions', 
        localField:'_id', 
        foreignField:'surveyId', 
        as: 'questions'
    } }
])

结果:

{
    "_id" : "survey_1",
    "title" : "test",
    "questions" : [ 
        {
            "_id" : "question_1",
            "isSeek" : true,
            "question" : "test",
            "surveyId" : "survey_1"
        }
    ]
}