结合聚合与搜索 - 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"
}
}
])
我有一组学生:
[
{
_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"
}
}
])