结合聚合与搜索 - Mongoose

Combine aggragate with search - Moongose

我有一组学生:

[  
  {  
    _id: 123,
    firstName: 'Tom', 
    lastName: 'Bo',  
    instructorsIds: ['12', '13', '14'] 
  }  
]

我正在从前端获取查询参数,以过滤数据库:

{ 
  instructorId: '13', 
  name: 'To' 
}

过滤器应该像这样工作:AND

名字过滤器应该结合学生的名字和姓氏,然后搜索。我设法做了类似的事情:

studentModel.aggregate([
  {
    $addFields: {
      nameFilter: {
        $concat: [
          "$firstName",
          " ",
          "$lastName"
        ]
      }
    }
  },
  {
    $match: {
      nameFilter: {
        $regex: filters.studentName,
        $options: "i"
      }
    }
  }
]) 

但我不知道如何在其中添加和过滤 od instructor id。 感谢您的帮助,谢谢

db.collection.aggregate([
  {
    $addFields: {
      nameFilter: {
        $concat: [
          "$firstName",
          " ",
          "$lastName"
        ]
      }
    }
  },
  {
    $match: {
      nameFilter: {
        $regex: "To",
        $options: "i"
      },
      instructorsIds: "13"
    }
  }
])

https://mongoplayground.net/p/-zq0jWnQhU_