9 MongoDB NoSQL数据库基础操作之查询文档

在上一篇中,我们讨论了如何在MongoDB中使用基本操作来插入文档。插入操作后,通常我们会需要查询这些文档以获取数据。在这一篇中,我们将重点介绍MongoDB的查询操作,包括基本查询、条件查询、排序和限制结果等。

连接到MongoDB

首先,我们需要连接到MongoDB数据库。以下是一个使用Node.js和MongoDB驱动连接数据库的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const { MongoClient } = require('mongodb');

// 连接URI
const uri = 'mongodb://localhost:27017';
const client = new MongoClient(uri);

async function run() {
try {
await client.connect();
console.log("成功连接到数据库!");
} finally {
await client.close();
}
}

run().catch(console.error);

确保在运行之前启动MongoDB服务。成功连接后,我们就可以进行查询了。

基本查询

查询MongoDB中的文档使用的是find()方法。这个方法可以检索到符合查询条件的所有文档。例如,我们有一个名为users的集合,以下是基本的查询文档操作:

1
2
3
4
5
const users = client.db("testDB").collection("users");
const query = {}; // 查询空对象,获取所有文档

const allUsers = await users.find(query).toArray();
console.log(allUsers);

在上面的例子中,传入的查询对象为空,所以会返回users集合中的所有文档。

条件查询

我们可以通过构造查询条件来检索特定的文档。例如,若要查找年龄大于25岁的用户,可以这样做:

1
2
3
const query = { age: { $gt: 25 } }; // $gt 是"greater than"的意思
const usersOver25 = await users.find(query).toArray();
console.log(usersOver25);

逻辑查询

为了实现逻辑条件,我们可以结合使用多个条件。比如,我们希望查询年龄在20到30岁之间,并且性别为“男性”的用户:

1
2
3
4
5
6
const query = {
age: { $gte: 20, $lte: 30 }, // $gte 和 $lte 分别是"greater than or equal to"和"less than or equal to"
gender: 'male'
};
const maleUsers = await users.find(query).toArray();
console.log(maleUsers);

排序结果

find() 方法还支持排序操作,使用sort()方法可以指定需要排序的字段。例如,若要根据年龄对用户进行升序排序,可以这样实现:

1
2
const sortedUsers = await users.find().sort({ age: 1 }).toArray(); // 1表示升序,-1表示降序
console.log(sortedUsers);

限制结果

常常在查询时我们只希望得到部分数据,可以使用limit()方法来限制返回的文档数量。例如,只查询前5个用户:

1
2
const limitedUsers = await users.find().limit(5).toArray();
console.log(limitedUsers);

组合查询

你可以结合使用sort()limit()和查询条件来实现更复杂的查询,例如,我们需要查找年龄大于20岁的女性用户,并获取她们中年龄最小的5人,按年龄升序排列:

1
2
3
const query = { age: { $gt: 20 }, gender: 'female' };
const result = await users.find(query).sort({ age: 1 }).limit(5).toArray();
console.log(result);

总结

在本篇教程中,我们学习了MongoDB中查询文档的基本操作,包括如何使用find()方法进行基本查询和条件查询,以及如何对结果进行排序和限制。理解这些基本操作后,您可以轻松访问和管理数据库中的数据。

在下一篇中,我们将讨论如何更新和删除文档,这些是数据库操作中同样重要的部分。通过实践这些操作,您将能更好地掌握MongoDB的使用。

9 MongoDB NoSQL数据库基础操作之查询文档

https://zglg.work/mongodb-database-zero/9/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论