是的,MongoDB的投影查询可以进行条件筛选。在投影查询中,您可以使用$elemMatch
操作符来根据指定条件筛选数组字段中的元素。$elemMatch
允许您在数组字段中匹配多个条件。
以下是一个使用$elemMatch
进行条件筛选的示例:
假设我们有一个名为students
的集合,其中包含以下文档:
{
"_id": 1,
"name": "Alice",
"scores": [
{
"subject": "math",
"score": 90
},
{
"subject": "english",
"score": 85
}
]
}
现在,我们希望查询所有数学成绩大于等于90分的学生。我们可以使用以下投影查询:
db.students.find(
{},
{
"name": 1,
"scores": {
$elemMatch: {
"subject": "math",
"score": { $gte: 90 }
}
}
}
)
这将返回以下结果:
{
"_id": 1,
"name": "Alice",
"scores": [
{
"subject": "math",
"score": 90
}
]
}
在这个例子中,我们使用$elemMatch
操作符在scores
数组字段中筛选出满足条件的元素。