我有以下猫鼬模式:
const tripSchema = new Schema({
events: [{
eventId: {
type: Schema.Types.ObjectId,
ref: 'Event',
required: true
},
quantity: {
type: Number,
required: true
}
}],
user: {
email: {
type: String,
required: true
},
userId: {
type: Schema.Types.ObjectId,
required: true,
ref: 'User'
}
}
})
基本上,我想获取事件并填充然后传递结果。我得到了结果,但是在映射之后,异步性使我困惑。
Trip.find({
'user.userId': mongoose.Types.ObjectId(req.user._id)
})
.then(trips => {
// A. I get trips here
return trips.forEach(
trip => {
trip.populate('events.eventId')
.execPopulate()
}
)
}).then(trips => {
//B. trips is undefined
res.render('standard/trips', {
path: '/trips',
pageTitle: 'Your Trips',
trips
})
})
.catch(err => console.log(err))
因此,在A点,绊倒是我所相信的,但是在B点,它是不确定的。我知道这是一个异步问题,只是不确定如何解决。请帮忙。谢谢。
Rik