在MongoDB中,你可以使用聚合管道(aggregation pipeline)来对数据进行各种操作和转换。在聚合管道中,你可以使用$match
阶段来进行条件判断。$match
阶段会根据指定的表达式过滤文档,只输出符合条件的文档。
下面是一个简单的例子,展示了如何使用$match
阶段进行条件判断:
假设我们有一个名为students
的集合,其中包含以下文档:
[
{ "_id": 1, "name": "Alice", "age": 20, "score": 85 },
{ "_id": 2, "name": "Bob", "age": 22, "score": 90 },
{ "_id": 3, "name": "Cathy", "age": 19, "score": 88 },
{ "_id": 4, "name": "David", "age": 21, "score": 95 }
]
现在,我们想要查询年龄在19岁以上且分数在85分以上的学生。我们可以使用以下聚合管道查询:
db.students.aggregate([
{
$match: {
age: { $gt: 19 },
score: { $gt: 85 }
}
}
])
这个查询的输出将是:
[
{ "_id": 2, "name": "Bob", "age": 22, "score": 90 },
{ "_id": 4, "name": "David", "age": 21, "score": 95 }
]
在这个例子中,我们使用$match
阶段来过滤出年龄在19岁以上且分数在85分以上的学生。$gt
操作符表示“大于”。你可以根据需要使用其他比较操作符,如$lt
(小于)、$gte
(大于等于)、$lte
(小于等于)等。