
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)
以上内容经过优化后更加简洁明了,适合技术读者阅读,同时经过优化有助于提高搜索引擎排名。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月14日 02时00分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MangoDB4.0版本的安装与配置
2025-04-11
Manjaro 24.2 “Yonada” 发布:尖端功能与精美界面再度进化
2025-04-11
map 函数返回的列表在使用一次后消失
2025-04-11
Map 遍历取值及jstl的取值
2025-04-11
Mapbox GL示例教程【目录】-- 已有80篇
2025-04-11
mapping文件目录生成修改
2025-04-11
MapReduce程序依赖的jar包
2025-04-12
MapStruct 映射过程中忽略某个字段
2025-04-12
map和bean的相互转换
2025-04-12
Map的深浅拷贝的探究
2025-04-12
Map集合循环遍历的几种方式
2025-04-12
MariaDB的简单使用
2025-04-12
Mark Mind:下一代思维导图编辑器
2025-04-12
Markdown —— 背景色
2025-04-12
MaterialForm对tab页进行隐藏
2025-04-12
materialTabControl1_SelectedIndexChanged的使用
2025-04-12
mathlab中deepDreamImage的参数PyramidLevels的作用
2025-04-12
matlab中APP介绍-ChatGPT4o作答
2025-04-12