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 】
相关推荐:
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
JS实现鼠标移上去显示图片或微信二维码
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何在自有机房高效搭建专业网站?
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel如何优化应用性能?(缓存和优化命令)
高性价比服务器租赁——企业级配置与24小时运维服务
如何快速生成ASP一键建站模板并优化安全性?
香港网站服务器数量如何影响SEO优化效果?
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
如何快速搭建高效香港服务器网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
javascript中对象的定义、使用以及对象和原型链操作小结
Laravel如何发送系统通知?(Notification渠道示例)
昵图网官方站入口 昵图网素材图库官网入口
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
网易LOFTER官网链接 老福特网页版登录地址
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
如何自定义建站之星模板颜色并下载新样式?
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
使用C语言编写圣诞表白程序
免费视频制作网站,更新又快又好的免费电影网站?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
如何快速搭建高效服务器建站系统?
,网页ppt怎么弄成自己的ppt?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel如何使用Livewire构建动态组件?(入门代码)
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何快速搭建高效WAP手机网站吸引移动用户?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
如何在万网利用已有域名快速建站?
如何在万网主机上快速搭建网站?
Laravel如何实现多对多模型关联?(Eloquent教程)
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
如何在云服务器上快速搭建个人网站?
iOS发送验证码倒计时应用
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
详解vue.js组件化开发实践

