MongoDB文档常见查询
发布日期:2025-04-14 17:36:19 浏览次数:9 分类:精选文章

本文共 2080 字,大约阅读时间需要 6 分钟。

MongoDB 文档查询操作教程

1. 文档查询操作

1.1 查询数据

(1)查询所有数据

使用 find() 方法查询集合中的所有文档。默认情况下,find() 会返回所有字段。

db.coll3.find()

(2)查询单个数据

要查询单个文档,可以使用 findOne() 方法。若不指定查询条件,findOne() 会返回集合中第一个文档。

db.coll3.findOne()

要查询满足特定条件的单个文档,可以指定查询条件。

db.coll3.findOne({ sex: 0 })

1.2 条件查询

常用的查询条件如下:

操作 格式 例子 MySQL 类似语句
等于 {key: value} db.user.find({ _id: 1 }) where id = 1
小于 {key: {$lt: value}} db.user.find({ age: {$lt: 18} }) where age < 18
小于等于 {key: {$lte: value}} db.user.find({ age: {$lte: 18} }) where age <= 18
大于 {key: {$gt: value}} db.user.find({ age: {$gt: 18} }) where age > 18
大于等于 {key: {$gte: value}} db.user.find({ age: {$gte: 18} }) where age >= 18
不等于 {key: {$ne: value}} db.user.find({ age: {$ne: 18} }) where age != 18
包含 {key: /value/} db.user.find({ name: /赵/ }) where name like '%赵%'
以...开头 {key: /^value/} db.user.find({ name: /^赵/ }) where name like '赵%'
以...结尾 {key: /value$/} db.user.find({ name: /赵$/ }) where name like '%赵'
在...之中 {key: {$in: [v1, v2, ...]}} db.user.find({ age: {$in: [1, 2, 3]}) where age in (1, 2, 3)
不在...之中 {key: {$nin: [v1, v2, ...]}} db.user.find({ age: {$nin: [1, 2, 3]}) where age not in (1, 2, 3)

(1)AND 条件

可以通过在查询对象中指定多个键来实现AND逻辑。

db.coll3.find({ "name": "露娜", sex: 0 })

(2)OR 条件

使用 $or 操作符来实现OR逻辑。

db.coll3.find({ "$or": [{ age: 17 }, { sex: 1 }] })

(3)AND 和 OR 联合使用

可以将AND和OR条件结合使用。

db.coll3.find({ sex: 1, $or: [{ age: 18 }, { age: 19 }] })

(4)模糊查询

使用正则表达式进行模糊查询。

db.coll3.find({ "name": /赵/ })

1.3 查询文档部分字段(投影查询)

默认情况下,find() 会返回所有字段。如果只需要特定字段,可以使用投影操作符。

db.coll3.find({ sex: 0 }, { age: 1, name: 1 })

如果不希望返回 _id,可以在投影对象中指定 _id: 0

db.coll3.find({ sex: 0 }, { age: 1, name: 1, _id: 0 })

1.4 统计查询

使用 count() 方法统计满足条件的文档数量。

db.coll3.find({ "age": { $lt: 20 } }).count()  # 返回4db.coll3.find({ "age": { $lt: 20 }, "sex": 0 }).count()  # 返回2

1.5 排序查询

使用 sort() 方法对查询结果进行排序。

db.coll3.find({ "age": { $lte: 20 }, "$or": [{ name: "孙尚香" }, { sex: 0 }] }).sort({ sex: 1, age: -1 })

1.6 分页查询

使用 skip()limit() 方法进行分页查询。

db.coll3.find().skip(2).limit(2)

或者结合排序和分页:

db.coll3.find().sort({ age: -1 }).skip(2).limit(2)

以上内容经过优化后更加简洁明了,适合技术读者阅读,同时经过优化有助于提高搜索引擎排名。

上一篇:MongoDB无法远程连接
下一篇:MongoDB整理笔记の索引

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月14日 02时00分02秒