猫鼬:aggregate.lookup,部分结果未定义

时间:2019-01-04 12:11:37

标签: node.js mongodb mongoose

我正在尝试使用方法Model.aggregate()通过使用集合societies从集合activities获取数据,但结果却未定义

activitySchema.statics = {
    findByAggr:function(cb){
        return this
        .aggregate([
            {$lookup:{
                from:'societies',
                localField:'societyId',
                foreignField:'_id',
                as:'full'
            }},
            {
                $unwind: "$full"
            }
        ])
        .sort('meta.updateAt')
        .exec(cb)
    }
} 

Activity.findByAggr(function(err,activities){
    if(err) console.log(err)
    var a1 = new Society()

    console.log(activities)
    console.log(activities.full)  //undefined
    console.log(activities.full.num)  //error
})

错误

[ { _id: 5c2f1d480500f435f0455731,
    meta:
     { createAt: 2019-01-04T08:46:00.478Z,
       updateAt: 2019-01-04T08:46:00.478Z },
    __v: 0,
    full:
     { _id: 5c2f1639ce5fdc16745f5e0a,
       meta: [Object],
       activities: [],
       num: '60',
       detail:'Lorem ipsum dolor sit amet...',
       __v: 0 } } ]

undefined

TypeError: Cannot read property 'num' of undefined

如您所见,在console.log(activities)中它显示了所有数据,但是我不能通过使用console.log(activities.full.num)来获取其中的一部分,为什么?

请帮帮我!谢谢!

我是中国人,不会说英语。请原谅我任何错误。

0 个答案:

没有答案