MongoDB的查询语句示例说明
假如我们在MongoDB服务器中有一个数据库,该数据中有一个数据集合(表)UserModel,存储的数据以及字段如下图所示:
- 查询集合(表)UserModel中的所有数据:
//select * from UserModel db.UserModel.find()
查询集合(表)UserModel中的所有数据,按照UserAge升序排列:
//select * from UserModel order by UserAge asc db.UserModel.find().sort({UserAge:1})//其中的1代表升序
查询集合(表)UserModel中的所有数据,按照UserAge降序排列:
//select * from UserModel order by UserAge desc db.UserModel.find().sort({UserAge:-1})//其中的-1代表降序
查询集合(表)UserModel中的前5条数据:
//select top 5 * from UserModel db.UserModel.find().limit(5)
查询集合(表)UserModel按照UserId升序查询前5条数据以后的所有数据:
//select * from UserModel where UserId not in(select top 5 UserId from UserModel order by UserId asc) order by UserId,按照UserId升序查询前5条数据以后的所有数据 db.UserModel.find().skip(5).sort({UserId:1})
查询集合(表)UserModel按照UserAge升序、第二页、每页10条的数据:
//分页查询,按照UserAge升序,查询第二页的数据,每页10条数据(下面语句中的2*10代表第二页*10) db.UserModel.find().limit(10).skip((2-1)*10).sort({UserAge:1})
查询集合(表)UserModel中UserId=6的数据:
//select * from UserModel where UserId=6 db.UserModel.find({UserId:6})
查询集合(表)UserModel中Status=1并且UserAge>29的数据:
//select * from UserModel where Status=1 and UserAge>29 db.UserModel.find({Status:1,UserAge:{$gt:29}})
查询集合(表)UserModel中UserName包含ac的数据:
//select * from UseModel where UserName like'%ac%' db.UserModel.find({UserName:/ac/})
查询集合(表)UserModel中UserName的前缀包含Qu的数据:
//select * from UserModel where UserName like'Qu%' db.UserModel.find({UserName:/^Qu/})
查询集合(表)UserModel中UserAge>13的数据:
//select * from UserModel where UserAge>13 db.UserModel.find({UserAge:{$gt:13}})
查询集合(表)UserModel中UserAge>=13的数据:
//select * from UserModel where UserAge>=13 db.UserModel.find({UserAge:{$gte:13}})
查询集合(表)UserModel中UserAge<13的数据:
//select * from UserModel where UserAge<13 db.UserModel.find({UserAge:{$lt:13}})
查询集合(表)UserModel中UserAge<=13的数据:
//select * from UserModel where UserAge<=13 db.UserModel.find({UserAge:{$lte:13}})
查询集合(表)UserModel中UserAge>=10并且UserAge<=20的数据:
//select * from UserModel where UserAge<=10 and UserAge<=20 db.UserModel.find({UserAge:{$gte:10,$lte:20}})
查询集合(表)UserModel中UserAge>45或UserAge<10的数据,并按照UserAge升序排列:
//select * from UserModel where UserAge>45 or UserAge<10 order by UserAge asc db.UserModel.find({$or:[{UserAge:{$gt:45}},{UserAge:{$lt:10}}]}).sort({UserAge:1})
查询集合(表)UserModel中的所有数据,并只查询UserId,UserName,UserAge这3个字段:
//select UserId,UserName,UserAge from UserModel db.UserModel.find({},{UserId:1,UserName:1,UserAge:1})
查询集合(表)UserModel中的所有数据,并只查询除UserId以外的所有字段:
//select UserName,UserAge,IsNormal,CreateTime from UserModel,查询出除UserId以外的所有列 db.UserModel.find({},{UserId:0})
查询集合(表)UserModel中UserAge>=10并且UserAge<=20的数据,并只查询出UserId,UserName,UserAge这3个字段:
//select UserId,UserName,UserAge from UserModel where UserAge<=10 and UserAge<=20 db.UserModel.find({UserAge:{$gte:10,$lte:20}},{UserId:1,UserName:1,UserAge:1})
查询集合(表)UserModel中的一条数据:
//select top 1 * from UserModel db.UserModel.findOne() 等价于 db.UserModel.find().limit(1)
查询集合(表)UserModel中满足查询条件的总条数:
//返回满足查询条件的集合总条数:select count(*) from UserModel where UserAge<=10 and UserAge<=20 db.UserModel.find({UserAge:{$gte:10,$lte:20}}).count()
查询集合(表)UserModel中满足查询条件的总条数(分页情况):
//如果是分页的查询,如果设置count(1)或count(true),则返回的条数就是当前页查询的结果总条数,而不是查询条件的总条数 db.UserModel.find({UserAge:{$gte:10,$lte:20}}).sort({UserAge:1}).limit(2).skip(5*2).count(1)
对集合(表)UserModel进行分组查询,按Status字段进行分组:
//分组查询,select Status,count(*) from UserModel group by Status db.UserModel.aggregate([{$group:{_id:'$Status',总数:{$sum:1}}} ])
对集合(表)UserModel中的Status字段去重查询:
//select distinct Status from UserModel db.UserModel.distinct('Status')
对集合(表)UserModel进行综合查询示例:
//综合查询示例语句(分页查询) /*查询UserModel的第二页数据,每页5条数据查询条件为:where Status=1 and (UserName like'%Qu%' or UserName like'Ja%') and (UserAge>=40 or UserAge<=20)查询的字段为:UserId,UserName,UserAge,IsNormal,Dtl */ db.UserModel.find({Status:1,$or:[{UserName:/Qu/},{UserName:/^Ja/}],$or:[{UserAge:{$gte:40}},{UserAge:{$lte:20}}]},{UserId:1,UserName:1,UserAge:1,IsNormal:1,Dtl:1} ) .sort({UserAge:1}) .limit(5).skip((2-1)*5) //.count() //返回总条数
完整代码如下:
//select * from UserModel
db.UserModel.find()//select * from UserModel order by UserAge asc
db.UserModel.find().sort({UserAge:1})//select * from UserModel order by UserAge desc
db.UserModel.find().sort({UserAge:-1})//select top 5 * from UserModel
db.UserModel.find().limit(5)//select * from UserModel where UserId not in(select top 5 UserId from UserModel order by UserId asc) order by UserId,按照UserId升序查询前5条数据以后的所有数据
db.UserModel.find().skip(5).sort({UserId:1})//分页查询,按照UserAge升序,查询第二页的数据,每页10条数据(下面语句中的2*10代表第二页*10)
db.UserModel.find().limit(10).skip((2-1)*10).sort({UserAge:1})//select * from UserModel where UserId=6
db.UserModel.find({UserId:6})//select * from UserModel where Status=1 and UserAge>29
db.UserModel.find({Status:1,UserAge:{$gt:29}})//select * from UseModel where UserName like'%ac%'
db.UserModel.find({UserName:/ac/})//select * from UserModel where UserName like'Qu%'
db.UserModel.find({UserName:/^Qu/})//select * from UserModel where UserAge>13
db.UserModel.find({UserAge:{$gt:13}})//select * from UserModel where UserAge>=13
db.UserModel.find({UserAge:{$gte:13}})//select * from UserModel where UserAge<13
db.UserModel.find({UserAge:{$lt:13}})//select * from UserModel where UserAge<=13
db.UserModel.find({UserAge:{$lte:13}})//select * from UserModel where UserAge<=10 and UserAge<=20
db.UserModel.find({UserAge:{$gte:10,$lte:20}})//select * from UserModel where UserAge>45 or UserAge<10 order by UserAge asc
db.UserModel.find({$or:[{UserAge:{$gt:45}},{UserAge:{$lt:10}}]}).sort({UserAge:1})//select UserId,UserName,UserAge from UserModel
db.UserModel.find({},{UserId:1,UserName:1,UserAge:1})//select UserName,UserAge,IsNormal,CreateTime from UserModel,查询出除UserId以外的所有列
db.UserModel.find({},{UserId:0})//select UserId,UserName,UserAge from UserModel where UserAge<=10 and UserAge<=20
db.UserModel.find({UserAge:{$gte:10,$lte:20}},{UserId:1,UserName:1,UserAge:1})//select top 1 * from UserModel
db.UserModel.findOne() 等价于 db.UserModel.find().limit(1)//返回满足查询条件的集合总条数:select count(*) from UserModel where UserAge<=10 and UserAge<=20
db.UserModel.find({UserAge:{$gte:10,$lte:20}}).count()//如果是分页的查询,如果设置count(1)或count(true),则返回的条数就是当前页查询的结果总条数,而不是查询条件的总条数
db.UserModel.find({UserAge:{$gte:10,$lte:20}}).sort({UserAge:1}).limit(2).skip(5*2).count(1)//分组查询,select Status,count(*) from UserModel group by Status
db.UserModel.aggregate([{$group:{_id:'$Status',总数:{$sum:1}}}
])//select distinct Status from UserModel
db.UserModel.distinct('Status')//综合查询示例语句(分页查询)
/*查询UserModel的第二页数据,每页5条数据查询条件为:where Status=1 and (UserName like'%Qu%' or UserName like'Ja%') and (UserAge>=40 or UserAge<=20)查询的字段为:UserId,UserName,UserAge,IsNormal,Dtl
*/
db.UserModel.find({Status:1,$or:[{UserName:/Qu/},{UserName:/^Ja/}],$or:[{UserAge:{$gte:40}},{UserAge:{$lte:20}}]},{UserId:1,UserName:1,UserAge:1,IsNormal:1,Dtl:1}
)
.sort({UserAge:1})
.limit(5).skip((2-1)*5)
//.count() //返回总条数
MongoDB的查询语句示例说明相关推荐
- Oracle数据库数据查询语句示例(包含大部分常用语句)
Oracle数据库数据查询语句示例(包含大部分常用语句) 目标 本文用到的关系模式 语句示例 1.在创建的s,p,j和spj表中完成以下查询 (1)查询零件重量在10-20之间(包括10和20)的零件 ...
- Mongodb常用查询语句_笔记
目录 前言 一.Mongodb简介 二.Mongodb常用查询语句 总结 前言 工作中会使用到Mongodb数据库,这是一个非关系型数据库,所以它的一些查询语句跟sql会不太一样,一时半会不能马上写出 ...
- mysql联表查询语句示例
mysql联表查询语句示例 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 示例: "sele ...
- mongo数据库的各种查询语句示例(比较全的)
左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * from users db.users.find({"age" ...
- MongoDB常用查询语句
如果觉得 Mongodb 语句不太好理解,可以和 SQL 语句进行对比,学起来要容易很多. 1. 查询(find) 查询所有结果 select * from article db.article.fi ...
- MongoDB基本查询语句
文章目录 查询选择器 查询就是获取存储在数据库中的数据.在MongoDB中,查询通常针对一个集合来操作.查询可以指定查询条件,只返回匹配的文档:还可以指定投影项,只返回指定的字段,减少返回数据到客户端 ...
- 数据库中的查询语句示例—select单表查询
宝子们!我们首先要了解SELECT语句的一般格式: SELECT[ALL|DISTINCT]<目标表达式>[,<目标表达式>]... //DISTINCT:消除重复值 ...
- mysql中查询没有选修某两门课的_50条SQL查询技巧、查询语句示例
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...
- Mongodb常用查询语句(对比SQL)
1.查询所有记录 db.mycol.find(); -- select * from mycol; 2.查询 name = "jack" 的记录 db.mycol.find({&q ...
- MongoDB 常用查询语句
数据库工具:Navicat id :1-7 createTime是字符串类型,8-13 createTime是date类型 直接贴代码: 查所有 db.getCollection("memb ...
最新文章
- redis面试全家桶
- Hibernate执行原生SQL
- redis批量操作及性能分析
- 【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用
- java如何实现python的urllib.quote(str,safe='/')
- 【待继续研究】除了专家模型,这两大模型也被普遍应用于信用评估
- 这些潮汕美食你吃过没有?
- Mybatis核心配置文件xml详解
- 工业以太网交换机出现温度过高如何处理?
- 便把他手中的i698源代码拐杖转了一圈
- 使用SourceTree
- 1、流程控制语句switch 2、数组 3、随机点名器案例
- 学生信息管理系统(纯前端页面)———无后端数据库
- Python3 验证二代身份证号码信息
- 知识图谱-构建:知识图谱构建流程【本体构建、知识抽取(实体抽取、 关系抽取、属性抽取)、知识表示、知识融合、知识存储】
- 斐波那契数列(各种代码实现斐波那契数列)
- 编译祁大神的iguana,大神就是大神.
- Rabbitmq 基础
- CSS font-size单位
- JQuery- JQuery学习
热门文章
- SylixOS Python扩展库开发
- SQLServer 使用sp_repldone标识所有未分发的事务为已分发
- libQt5Core.so: undefined reference to `dlclose@GLIBC_2.4'
- td中使用overflow:hidden; 无效解决方案
- STM32F10x 学习笔记4(CRC计算单元 续)
- php 字符串操作函数
- SOA项目技术实施指南
- 3.微服务:从设计到部署 --- 进程间通信
- 17.nginx 的 rewrite 功能
- ds哈希查找—二次探测再散列_哈希算法高大上?也不过如此