Я пытаюсь использовать метод 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.info(err)
var a1 = new Society()
console.info(activities)
console.info(activities.full) //undefined
console.info(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.info(activities) отображаются все данные, но я не могу получить их часть с помощью console.info(activities.full.num), почему?
Пожалуйста, помогите мне! Спасибо!
Я китаец и плохо говорю по-английски, извините за ошибки.
Помогите! Спасибо!!!





activities- это массив, вам нуженactivities[0].fullилиactivities[0].full.num