首页 > 解决方案 > $lookup,$match 使用 nodejs 在 mongodb 中给出一个空数组

问题描述

屏幕截图是我的 db GUI 我正在尝试基于 $match 从两个集合中获取数据,$lookup 在 mongodb 中使用 nodejs ,即使我的集合中的数据是正确的,结果数组也是空的。下面是我的代码。合作伙伴,示例是我的两个集合 Mongosb 版本:3.4,mongoose 版本:5.1.2

     Partner.aggregate([{ $match: { email: req.user.user.email } }, 
            {
                $lookup:
                {
                  from: 'sampleProcess',
                  localField: '_id',
                  foreignField: 'partnerid',
                  as:'data'
                }
        }], function (err, data) {
            if (err) res.json(err); console.log(JSON.stringify(err));
            if (data) console.log(JSON.stringify(data)); res.json(data);
        })}

我的合作伙伴收集数据

{
    "_id" : ObjectId("5b22433324a9d70a58c1a4a4"),
    "partnerName" : "indraja",
    "email" : "indrajaboya@gmail.com",
    "mobileNo" : 232323232323.0,
    "addressLine1" : "banaswadi",
    "addressLine2" : "banglore",
    "city" : "bangalore"
}

我的样本收藏

{
    "_id" : ObjectId("5b22540fb45a893624ab214d"),
    "sampleStatus" : "Sample Sent",
    "sampleService" : "Translation",
    "sampleSentTat" : "6",
    "partnerid" : ObjectId("5b22433324a9d70a58c1a4a4"),
    "__v" : 0
}

标签: node.jsmongodbmongoose

解决方案


推荐阅读