MongoDB 中的选择查询

在 MongoDB 中,选择查询是最常用的查询操作之一。选择查询用于从集合中检索文档并返回满足特定条件的文档。通过选择查询,您可以筛选出符合特定条件的文档,以满足您的数据检索需求。
基本语法
在 MongoDB 中,选择查询的基本语法如下:
db.collectionName.find({ <query> }, { <projection> })
db.collectionName:指定要执行查询的集合名称。find():指定要进行查询的操作。<query>:查询条件,用于筛选出符合条件的文档。<projection>:投影操作符,用于指定要显示的字段。
查询条件
在 MongoDB 中,查询条件是一个 JSON 对象,用于指定筛选文档的条件。查询条件的结构如下:
{
field1: value1,
field2: value2,
...
}
其中,field1、field2 是文档中的字段名称,value1、value2 是要匹配的值。查询条件可以使用 MongoDB 提供的查询操作符来实现更复杂的条件筛选。
比较查询操作符
比较查询操作符用于比较字段的值,常用的比较操作符包括:
$eq:等于$ne:不等于$gt:大于$gte:大于等于$lt:小于$lte:小于等于
示例:
// 查询 age 大于 18 的文档
db.users.find({ age: { gt: 18 } })
// 查询 score 大于等于 90 的文档
db.scores.find({ score: {gte: 90 } })
逻辑查询操作符
逻辑查询操作符用于组合多个查询条件,常用的逻辑操作符包括:
$and:逻辑与$or:逻辑或$not:逻辑非
示例:
// 查询 age 大于 18 且 score 大于 90 的文档
db.users.find({ and: [ { age: {gt: 18 } }, { score: { gt: 90 } } ] })
// 查询 age 大于 18 或 score 大于 90 的文档
db.users.find({or: [ { age: { gt: 18 } }, { score: {gt: 90 } } ] })
投影操作符
投影操作符用于指定要显示的字段,在查询结果中只返回指定的字段。投影操作符的结构如下:
{
field1: <value>,
field2: <value>,
...
}
其中,field1、field2 是要显示的字段名称,<value> 可以是 1(显示字段)或 0(不显示字段)。
示例:
// 只显示 name 和 age 字段
db.users.find({}, { name: 1, age: 1 })
// 不显示 _id 字段
db.users.find({}, { _id: 0 })
示例
接下来,我们通过一个具体的示例来演示 MongoDB 中的选择查询操作。假设有一个 students 集合,包含学生的信息,结构如下:
{
_id: ObjectId(),
name: "Alice",
age: 20,
score: 95
}
{
_id: ObjectId(),
name: "Bob",
age: 22,
score: 88
}
{
_id: ObjectId(),
name: "Charlie",
age: 18,
score: 75
}
现在我们需要查询年龄大于 18 岁且分数大于 85 分的学生信息,只显示姓名和分数字段。查询代码如下:
db.students.find({ and: [ { age: {gt: 18 } }, { score: { $gt: 85 } } ] }, { name: 1, score: 1, _id: 0 })
执行以上查询后,将返回符合条件的文档信息:
{ "name" : "Alice", "score" : 95 }
{ "name" : "Bob", "score" : 88 }
总结
选择查询是 MongoDB 中非常重要的操作之一,通过选择查询,您可以根据特定条件获取所需的文档数据。
极客教程