在以下查询中,我想获取所有经过验证的学生及其相关会议。但试图获取所有即将到来的会议,这意味着会议至少有一个未来的日期时间。我的书面查询会获取所有经过验证的学生,但也会获取学生的所有会议,包括过去的会议。我希望仅在有任何即将举行的会议时才获取学生,并且仅在返回协会中获取即将举行的会议。我想根据最近的会议对客户对象数组进行排序任何帮助将不胜感激
let aggregateDataQuery = [
{
$lookup: {
from: 'meetup',
localField: '_id',
foreignField: 'studentId',
as: 'meetup',
},
},
{
$project: {
firstName: 1,
lastName: 1,
email: 1,
meetup: {
_id: 1,
startTime: 1,
},
},
},
];
const [result, err] = await of(
Student.aggregate([
...aggregateDataQuery,
{ $match: {
verified: true,
'meetup.startTime': { '$gte': 2021-09-10T08:41:15.746Z }
}
},
{
$facet: {
data: [
{ $sort: sortBy },
{ $skip: skip },
{ $limit: recordLimit },
],
count: [
{
$count: 'count',
},
],
},
},
])
);