Node.js mongoose中$lookup后如何过滤多个属性

Node.js mongoose中$lookup后如何过滤多个属性,node.js,mongodb,mongoose,mongodb-query,Node.js,Mongodb,Mongoose,Mongodb Query,我正在尝试获取学生的电子邮件,该学生在一门课程下提交了所有作业。首先,我要检查他们是否购买了课程。我需要过滤掉课程和isSubmittedtrue或false。如果我使用$和操作,我得到的是空数组 cond: { $and : { $eq: ["$$assignmentObj.courseId", ObjectId(id)], $eq: ["$$assignmentObj.isSubmitted", true],

我正在尝试获取学生的电子邮件,该学生在一门课程下提交了所有作业。首先,我要检查他们是否购买了课程。我需要过滤掉
课程
isSubmitted
true或false。如果我使用
$和
操作,我得到的是空数组

cond: {
     $and : {
        $eq: ["$$assignmentObj.courseId", ObjectId(id)],
        $eq: ["$$assignmentObj.isSubmitted", true],
     }
}
但是,如果我尝试按此条件进行筛选,我将获得数据,但未执行
isSubmitted
true或false筛选-

cond: {
    $eq: ["$$assignmentObj.courseId", ObjectId(id)],            
}
我已经把这个写在控制器上了-

const assignmentCount = await Assignment.find({ courseId: id }).countDocuments();

const assignmentSubmittedUser = await PurchaseHistory.aggregate([
      {
        $project: {
          userId: {
            $toObjectId: "$userId"
          },
          courseId: {
            $toObjectId: "$courseId"
          },
        }
      },
      { $match: { courseId: ObjectId(id) } },
      {
        $lookup: {
          from: 'assignmenthistories',
          localField: 'userId',
          foreignField: 'user',
          as: 'assignmentList'
        }
      },
      {
        $project:
        {
          userId: 1,
          assignmentList:
          {
            $filter:
            {
              input: "$assignmentList",
              as: "assignmentObj",
              cond: {
                $and : {
                  $eq: ["$$assignmentObj.courseId", ObjectId(id)],
                  $eq: ["$$assignmentObj.isSubmitted", true],
                }
                
              }
            }
          }
        }
      },
      {
        $lookup: {
          from: 'users',
          localField: 'userId',
          foreignField: '_id',
          as: 'userDetail'
        }
      },
      {
        $project: {
          'email': { $arrayElemAt: ["$userDetail.email", 0] },
          assignmentCount: { $size: '$assignmentList' }
        }
      },
      { $match: { assignmentCount } },

    ])

$和
条件应该在如下数组中{$and:[{$eq:[“$$assignmentObj.courseId”,ObjectId(id)]},{$eq:[“$$assignmentObj.isSubmitted”,true]}