我正在使用batch_id来访问CoursePurchaseModel,并使用user_id在startdate和endDate的条件下填充到userModel中,但每次都得到user_id为空。我是mongoose的新手。我错过了什么吗?
第一次
getUsersByBatchIdAccordingDate: async (startDate, endDate, batch_id) => {
let findifUsers = await module.exports.getUsersAccordingDate(startDate, endDate);
if (findifUsers.length == 0) {
return Error("No users found");
}
let userData = await CoursePurchasedModel.find({ batch_id: batch_id })
.populate({
path:'user_id',
model:'User',
match: { createdAt: { $gte: startDate, $lte: endDate } },
select: 'name email gender number address state pincode unique_code referedBy creditEarned refer_id LastAppOpenedTime createdAt -_id'
}).exec();
let userArray = [];
for (let data of userData) {
let newVideoObject = { ...data.user_id.toObject() }
userArray.push(newVideoObject);
}
return userArray;
}
1条答案
按热度按时间fcg9iug31#
您可以了解
aggregation
。您可以使用aggregation
来匹配其他文档字段的值。它返回为填充字段。如果您不需要匹配,填充已按您的意愿工作。但对于匹配值,需要使用聚合。最后,在结果中,userModelTable作为填充的UserModel。而且,它已经根据createdAt进行了匹配。
我希望,它对你有用。