MongoDB的查询方法
发布时间 - 2026-01-11 00:54:39 点击率:次代码:
db.blogs.insert([
{
"author": "张三",
"title": "MongoDB简介",
"content": "它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性、可伸缩性、扩展性于一身的高性能的面向文档的通用数据库",
"tags": [
"MongoDB",
"NoSQL"
],
"comment": [
{
"name": "Jack",
"detail": "Good!",
"date": ISODate("2015-07-09 09:55:49")
},
{
"name": "Tom",
"detail": "Hello World!",
"date": ISODate("2015-07-09 18:12:35")
},
{
"name": "Alice",
"detail": "你好,Mongo!",
"date": ISODate("2015-07-10 20:30:30")
}
],
"readCount": 154
},
{
"author": "李四",
"title": "1+1等于几",
"content": "有的人说1+1=2,因为这是老师从小告诉我们的;而有的人说1+1=11,这是两个1的组合;但是有些人就认为1+1=1,他们觉得1个团队加上另一个团队,会组成了一个更强大的团队!",
"tags": [
"story",
"rule",
"数学"
],
"comment": [
{
"name": "王小光",
"detail": "每个人心里边都有自己的答案。",
"date": ISODate("2015-07-10 11:45:57")
}
],
"readCount": 367
},
{
"author": "李四",
"title": "如何写一篇好的博客?",
"content": "1、目标;2、坚持;3、分享;4、学习;5、提高",
"tags": null,
"comment": [
{
"name": "小明",
"detail": "ComeOn!!!!",
"date": ISODate("2015-07-10 14:49:06")
},
{
"name": "Nike",
"detail": "终身学习!",
"date": ISODate("2015-07-11 10:22:36")
},
{
"name": "小红",
"detail": "贵在坚持吧、",
"date": ISODate("2015-07-12 12:12:12")
}
],
"readCount": 1489,
"isTop": true
}
])
Test Data
以上面的测试数据为基础,进行下面的基本查询操作:
1、查询所有博客
db.blogs.find()
或
db.blogs.find({})
注:查询一个文档:db.blogs.findOne()
2、查询所有博客的标题和内容(指定需要返回的键值)
db.blogs.find({},{"title":1,"content":1,"_id":0})
注:1表示返回,0表示不返回。默认情况下,“_id”这个键总是被返回,即便是没有指定这个键
3、查询作者为“张三”的博客(=操作)
db.blogs.find({"author":"张三"})
或
db.blogs.find({"author":{"$eq":"张三"}})
4、查询除了作者为“张三”的博客(!=操作)
db.blogs.find({"author":{"$ne":"张三"}})
5、查询作者为“李四”并且博客标题为“MongoDB简介”的博客(and操作)
db.blogs.find({"author":"张三","title":"MongoDB简介"})
6、查询阅读量大于等于200并且小于1000的博客(>=操作)
db.blogs.find({"readCount":{"$gte":200,"$lt":1000}})
注:“$lt”,“$lte”,“$gt”,“$gte”分别对应<,<=,>,>=操作
7、查询作者为“张三”或者“李四”的博客(or操作)
db.blogs.find({"$or":[{"author":"张三"},{"author":"李四"}]})
8、查询博客标签包含了“NoSQL”或者“数学”的博客(in操作)
db.blogs.find({"tags":{"$in":["NoSQL","数学"]}})
注:not in操作
db.blogs.find({"tags":{"$nin":["NoSQL","数学"]}}) //不包含
9、查询标签为空的博客(null操作)
db.blogs.find({"tags":null})
注:null不仅会匹配到某个键为null的文档,也会匹配不包含这个键的文档
10、查询内容里边包含了数字“1”的博客
db.blogs.find({"content":/1/})
注:只要符合常规正则表达式的,都能被MongoDB接受
数组操作
11、查询标签里边既包含“story”,又包含了“rule”的博客
db.blogs.find({"tags":{"$all":["story","rule"]}})
12、查询第一个标签是“MongoDB”的博客
db.blogs.find({"tags.0":"MongoDB"})
注:数组的下标是从0开始的
13、查询标签个数为3个的博客
db.blogs.find({"tags":{"$size":3}})
内嵌文档
14、查询“jack”评论过的博客
db.blogs.find({"comment.name":"Jack"})
注:因为内嵌文档“.”的问题,所以不能使用URL等
15、假设每页2篇博客,按阅读量倒序,取第二页的数据
db.blogs.find({}).skip(2).limit(2).sort({"readCount":-1})
注:skip()、limit()、sort(),分别表示略过文档的数量,匹配的数量和排序(1表示正序,-1表示倒序)
# MongoDB
# 查询
# MongoDB数据库条件查询技巧总结
# MongoDB基础之查询文档
# 常用的MongoDB查询语句的示例代码
# 详解MongoDB的条件查询和排序
# MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)
# MongoDB多条件模糊查询示例代码
# MongoDB 查询操作的实例详解
# MongoDB数据查询方法干货篇
# MongoDB的一些常用查询方法
# MongoDB实现查询、分页和排序操作以及游标的使用
# 博客
# 文档
# 李四
# 这是
# 人说
# 包含了
# 内嵌
# 不包含
# 自己的
# 都有
# 也会
# 第一个
# 都能
# 每个人
# 是从
# 它是
# 每页
# 告诉我们
# 人就
# 高性能
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Android滚轮选择时间控件使用详解
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
网站制作价目表怎么做,珍爱网婚介费用多少?
网站制作壁纸教程视频,电脑壁纸网站?
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Linux系统运维自动化项目教程_Ansible批量管理实战
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
如何在阿里云购买域名并搭建网站?
如何快速配置高效服务器建站软件?
如何在万网自助建站中设置域名及备案?
Laravel用户密码怎么加密_Laravel Hash门面使用教程
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
如何在香港免费服务器上快速搭建网站?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何在服务器上三步完成建站并提升流量?
如何获取PHP WAP自助建站系统源码?
Laravel如何升级到最新版本?(升级指南和步骤)
如何在服务器上配置二级域名建站?
网站建设保证美观性,需要考虑的几点问题!
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
如何批量查询域名的建站时间记录?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
EditPlus中的正则表达式 实战(4)
,怎么在广州志愿者网站注册?
利用 Google AI 进行 YouTube 视频 SEO 描述优化
java获取注册ip实例
Python面向对象测试方法_mock解析【教程】
如何打造高效商业网站?建站目的决定转化率
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
JavaScript如何操作视频_媒体API怎么控制播放
JS中对数组元素进行增删改移的方法总结
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
香港服务器租用费用高吗?如何避免常见误区?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
微信小程序 require机制详解及实例代码
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
如何在宝塔面板中创建新站点?
Laravel storage目录权限问题_Laravel文件写入权限设置
历史网站制作软件,华为如何找回被删除的网站?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何在橙子建站中快速调整背景颜色?
php json中文编码为null的解决办法
Swift开发中switch语句值绑定模式
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】

