我正在尝试使用方法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)
来获取其中的一部分,为什么?
请帮帮我!谢谢!
我是中国人,不会说英语。请原谅我任何错误。