MongoDB(六):选择字段、限制记录数、排序记录
1. 选择字段
在MongoDB中,选择字段又叫投影,表示仅选择所需要字段的数据,而不是选择整个文档字段的数据。如果某个文档有5个字段,但只要显示3个字段,那么就只选择3个字段吧,这样做是非常有好处的。
find()方法在MongoDB查询文档中此方法接收的第二个可选参数是要检索的字段列表。 在MongoDB中,当执行find()方法时,它默认将显示文档的所有字段。为了限制显示的字段,需要将字段列表对应的值设置为1或0。1表示显示字段,而0表示隐藏字段。
语法:
>db.COLLECTION_NAME.find({},{KEY:1})
mycol有以下数据:
> db.mycol.find({}, {'_id':1, 'title':1})
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 104, "title" : "Python Quick Guide" }
{ "_id" : 100, "title" : "MongoDB Overview" }
>
实例:
查询文档时只显示文档的标题。
> db.mycol.find({}, {'title':1,'_id':0})
{ "title" : "MongoDB Guide" }
{ "title" : "NoSQL Database" }
{ "title" : "Python Quick Guide" }
{ "title" : "MongoDB Overview" }
> db.mycol.find({}, {'title':1,'by':1, 'url':1})
{ "_id" : 101, "title" : "MongoDB Guide", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
{ "_id" : 102, "title" : "NoSQL Database", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
{ "_id" : 104, "title" : "Python Quick Guide", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
{ "_id" : 100, "title" : "MongoDB Overview", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
>
注意:在执行find()方法时,始终都会显示_id字段,如果不想要此字段,则需要将其设置为0。
2. 限制记录数
2.1 limit()方法
要限制 MongoDB 中返回的记录数,需要使用limit()方法。该方法接受一个数字类型参数,它是要显示的文档数。
语法:
> db.COLLECTION_NAME.find().limit(NUMBER)
实例:
mycol有以下数据:
> db.mycol.find({},{'_id':1, 'title':1})
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 104, "title" : "Python Quick Guide" }
{ "_id" : 100, "title" : "MongoDB Overview" }
>
在查询文档时仅显示两个文档。
> db.mycol.find({},{"title":1,_id:0}).limit(2)
{ "title" : "MongoDB Guide" }
{ "title" : "NoSQL Database" }
>
如果没有在limit()方法中指定number参数的值,那么它将显示集合中的所有文档。
2.2 skip()方法
skip()也可以接收数字类型参数,用于跳过文档数量。
语法:
>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
实例:
仅显示第三个文档。
> db.mycol.find({},{"title":1,_id:0}).limit(1).skip(2)
{ "title" : "Python Quick Guide" }
>
注意:skip()方法中的默认值为0。
3. 排序记录
要在MongoDB中排序文档,需要使用sort()方法。该方法接受包含字段列表及其排序顺序的文档。使用指定排序顺序1和-1。1用于升序,而-1用于降序。
语法:
>db.COLLECTION_NAME.find().sort({KEY:1})
实例:
mycol有以下数据:
> db.mycol.find({},{'_id':1, 'title':1})
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 104, "title" : "Python Quick Guide" }
{ "_id" : 100, "title" : "MongoDB Overview" }
>
按标题降序排列显示文档。
> ## 按`title`降序排序
> db.mycol.find({},{"title":1,_id:0}).sort({"title":-1})
{ "title" : "Python Quick Guide" }
{ "title" : "NoSQL Database" }
{ "title" : "MongoDB Overview" }
{ "title" : "MongoDB Guide" }
> ## 按`title`升序排序
> db.mycol.find({},{"title":1,_id:0}).sort({"title":1})
{ "title" : "MongoDB Guide" }
{ "title" : "MongoDB Overview" }
{ "title" : "NoSQL Database" }
{ "title" : "Python Quick Guide" }
>
按“_id”降序和升序排序显示文档。
> 按“_id”升序排序
> db.mycol.find({},{"title":1,_id:1}).sort({"_id":1})
{ "_id" : 100, "title" : "MongoDB Overview" }
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 104, "title" : "Python Quick Guide" }
> # 按“_id”降序排序
> db.mycol.find({},{"title":1,_id:1}).sort({"_id":-1})
{ "_id" : 104, "title" : "Python Quick Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 100, "title" : "MongoDB Overview" }
>
skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。
MongoDB(六):选择字段、限制记录数、排序记录的更多相关文章
- MySQL之单表查询 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER BY 八 限制查询的记录数:LIMIT 九 使用正则表达式查询
MySQL之单表查询 阅读目录 一 单表查询的语法 二 关键字的执行优先级(重点) 三 简单查询 四 WHERE约束 五 分组查询:GROUP BY 六 HAVING过滤 七 查询排序:ORDER B ...
- ArcGIS for Android图层记录数,图层选择记录,图层字段数
Log.d("图层记录数:", "" + pFeatureLayer.getFeatureTable().getNumberOfFeatures()); Log ...
- MongoDB中的映射,限制记录和记录拼排序 文档的插入查询更新删除操作
映射 在 MongoDB 中,映射(Projection)指的是只选择文档中的必要数据,而非全部数据.如果文档有 5 个字段,而你只需要显示 3 个,则只需选择 3 个字段即可. find() 方法 ...
- Mongodb利用aggregation实现抽样查询(按记录数和时间)
之前对mongodb不熟,但是项目要用,因为数据量比较大,并且领导要实现抽样查询,控制数据流量,所以自己研究了下,亲测可用,分享一下! 话不多说,上代码: 第一种方案:加自增主键,实现按记录数抽样 1 ...
- 【JDBC】仅输入表名和要插入的记录数,自动检测表的字段和类型,然后插入数据的全自动程序(Oracle版)
之前写的批量插值程序只是五六半自动版本,因为表的字段还需要手工填写,这回只要指定表名和要插多少数据就行了,类似于全自动突击步枪,扣动扳机就把字段打完为止. 全自动程序如下,诸位拿下去后可以修改成自己想 ...
- MongoDB限制记录数
MongoDB limit()方法 要限制 MongoDB 中返回的记录数,需要使用limit()方法. 该方法接受一个数字类型参数,它是要显示的文档数. 语法 limit()方法的基本语法如下: & ...
- mysql选择上一条、下一条数据记录,排序上移、下移、置顶
1.功能须要 完毕列表排序上移,下移,置顶功能.效果例如以下图所看到的: 2设置思路 设置一个rank为之间戳,通过选择上移,就是将本记录与上一条记录rank值交换,下移就是将本条记录与下一条记录ra ...
- mysqldump 导出统一限制每张数据表导出的记录数
mysqldump 导出统一限制每张数据表导出的记录数 在工作过程中,需要将生产的数据导出到本地开发环境,我希望可以导出部分数据.而服务器数据量比较大(上千万),如果选择直接从服务器导出数据, 正在运 ...
- 使用传入的总记录数实现一条sql语句完成分页查询
使用传入的总记录数实现一条sql语句完成分页查询 问题:在传统的分页查询的实现中不可避免的需要两条sql语句,一条用于查询数据一条用于查询总记录数.如下面的实际代码所示: Img1 当然如果使 ...
随机推荐
- 【python测试开发栈】—python内存管理机制(二)—垃圾回收
在上一篇文章中(python 内存管理机制-引用计数)中,我们介绍了python内存管理机制中的引用计数,python正是通过它来有效的管理内存.今天来介绍python的垃圾回收,其主要策略是引用计数 ...
- 阿里云上万个 Kubernetes 集群大规模管理实践
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 汤志敏,阿里 ...
- 使用aop加解密http接口
背景 最近在写一个小程序接口,由于安全性比较高,因此需要给请求参数和响应进行加密处理.如果在每个方法上都加密解密,那样代码就显得太繁琐了而且工作量会加大.所以,我们会统一进行加解密处理,一种比较传统的 ...
- 【Android - 进阶】之Drawable简介
Drawable是什么?Android给我们的解释是:“A general abstraction for 'something that can be drawn'.”,翻译过来就是:对于可以绘制的 ...
- MVC WebApi 返回字符串
[HttpGet] public HttpResponseMessage GetWebConfigValue(string key) { var response = Request.CreateRe ...
- spring cloud 之 -- eureka vs consul,该选择谁?
0--前言 spring cloud的服务注册中心,该选择谁?在选择前,我们首先需要来了解下分布式的CAP定理: 所谓CAP,是指: Consistency:一致性:就是在分布式系统中的所有数据备份, ...
- 最小生成树——Kruskal与Prim算法
最小生成树——Kruskal与Prim算法 序: 首先: 啥是最小生成树??? 咳咳... 如图: 在一个有n个点的无向连通图中,选取n-1条边使得这个图变成一棵树.这就叫“生成树”.(如下图) 每个 ...
- 基于webpack实现多html页面开发框架四 自动写入多入口,自动插入多个htmlWebpackPlugin插件
一.解决什么问题 1.手写页面多入口,一个一个输入太麻烦,通过代码实现 2.手写多个htmlWebpackPlugin插件太麻烦,通过代码实现 二.多入口代码实现 //读取所有.j ...
- 单片机内存分配中的.text .data .bss heap stack
[本文转自:http://www.51hei.com/bbs/dpj-41696-1.html] .text段:代码段(code segment/text segment)通常是指用来存放程序执行代码 ...
- TC297B - 外设头文件解析(以IO为例)
打开例程,目录树下的Includes中包含了各个片上资源对应的头文件,这些头文件定义了相应外设的寄存器地址(寄存器是内置于各个 IP 外设中,是一种用于配置外设功能的存储器,就是一种内存,并且有相对应 ...