MongoDB limit 选取 skip跳过 sort排序 方法

 

MongoDB  limit 选取 skip跳过 sort排序

在mysql里有order by  MongoDB用sort代替order by

 

> db.user.find()
{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 }
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }
{ "_id" : ObjectId("5ca7a4c4219efd687462f969"), "id" : 5, "name" : "ben", "age" : 24 }
{ "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }

 

Limit 选取 :

我要从这些 Document 中取出多少个

选取2条Document

> db.user.find().limit(2)
{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 }
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }

从整个collection集合的第一条数据Document开始选取两条

 

Skip 跳过 :

我要跳过多少个Document

我要跳过前两个 Document 直接从第三个Document 开始

 

> db.user.find().skip(2)
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }
{ "_id" : ObjectId("5ca7a4c4219efd687462f969"), "id" : 5, "name" : "ben", "age" : 24 }
{ "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }

skip(2) 就是跳过两条Document,从整个collection集合第一条数据Document开始跳过

 

 

Limit + Skip : 

我只想要第二条和第三条

> db.user.find()
{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 }
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }
{ "_id" : ObjectId("5ca7a4c4219efd687462f969"), "id" : 5, "name" : "ben", "age" : 24 }
{ "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }
> 
> db.user.find().skip(1).limit(2)
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }

跳过第一条数据,从第二条数据开始选取2条数据Document

 

反过来顺序是一样的

> db.user.find().limit(2).skip(1)
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }

选取两条数据,但要跳过第一条数据,从第二条数据开始选取

 

Sort 排序 : 将结果按照关键字排序

sort写法  {} 里面根据什么Field进行排序 

1 为升序 , -1 为降序

 

db.user.find().sort({ sortField:-1 })

 

 

 将find出来的Document 按照 age 进行 升序 | 降序 排列

升序

> db.user.find().sort({"age":1})
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f969"), "id" : 5, "name" : "ben", "age" : 24 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }
{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 }
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }

降序

> db.user.find().sort({"age":-1})
{ "_id" : ObjectId("5ca7a4b7219efd687462f966"), "id" : 2, "name" : "mike", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }
{ "_id" : ObjectId("5ca7a4c4219efd687462f969"), "id" : 5, "name" : "ben", "age" : 24 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f967"), "id" : 3, "name" : "peter", "age" : 21 }

 

 Limit + Skip + Sort 混搭:

选取第二条第三条第四条 并 按照 age 进行 降序排列

> db.user.find().skip(1).limit(3).sort({age:-1})
{ "_id" : ObjectId("5ca7a505219efd687462f96a"), "id" : 6, "name" : "Mary", "age" : 84, "gender" : "男" }
{ "_id" : ObjectId("5ca7a4b0219efd687462f965"), "id" : 1, "name" : "jack", "age" : 73 }
{ "_id" : ObjectId("5ca7a4c4219efd687462f968"), "id" : 4, "name" : "xiaogang", "age" : 34, "hobby" : [ "羽毛球", "篮球", "足球" ] }

 

转载于:https://www.cnblogs.com/mingerlcm/p/10698074.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPCC气候变暖最新报告:不要眼见,要“远见”

來源:简书作者:简晶链接:https://www.jianshu.com/p/015a29055b4a2021年8月9日IPCC发布报告,地球气候正在极速广泛地加剧变化,至少在目前的时间范围内部分趋势已经不可挽回。人类导致的气候变化已经极度影响了全球所有…

IDEA打开父类的接口方法快捷键

有两个类,分别为A类是接口、B类为A的实现类。如果想在B类里的某个方法,打开A类可以鼠标右键点击这个方法名,按下键盘:CtrlU,就可以跳转到A类接口的该方法上面。转载于:https://www.cnblogs.com/gobyte/p/10714460.html…

智力题:64匹马8个跑道,至少需要多少轮才能挑选出最快的4匹马

题意: 64匹马8个跑道需要多少轮才能挑选出最快的四匹马? 解法: 1.分成八组,每组8匹马。 2.八组内部分别比赛,总共比八场,对每组的马排序。 每组的后四匹显然不是答案,直接淘汰。 现在只剩下…

自监督学习:人工智能中的暗物质,来自Facebook AI Yann LeCun

来源:AI公园作者:Yann LeCun,Ishan Misra编译:ronghuaiyang近年来,人工智能领域在开发能够从大量精心标记的数据中学习的人工智能系统方面取得了巨大进展。这种监督学习的模式在训练专家模型时有着良好的记录&#xff…

动态代理之: com.sun.proxy.$Proxy0 cannot be cast to 问题

转: 动态代理之: com.sun.proxy.$Proxy0 cannot be cast to 问题 2018年05月13日 00:40:32 codingCoge 阅读数:1211 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38409944/article/…

牛客16596 计算系数(排列组合)

链接:https://ac.nowcoder.com/acm/problem/16596 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 给定一个多项式(axby)k&#xff0…

MIT新研究:过去80年,算法效率提升到底有多快?

来源:MIT,新智元编辑:David【导读】随着摩尔定律走向终结,靠提升计算机硬件性能可能越发难以满足海量计算的需要,未来的解决之道在于提升算法的效率。MIT的这篇新论文总结了过去80年来,算法效率的提升究竟有…

2017沈阳站 Tree

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid6228 Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1693 Accepted Submission(s): 978 Problem DescriptionConsider a un-rooted tr…

快速幂模板(Python)

首先我们需要知道下面这个公式: (a^b) mod c((a mod c)^b) mod c 现在试着用最常规的方法计算 a^b 算法一: def spow(n, m):res 1for i in range (m):res * nreturn res print(spow(2, 100))显然这个算法的时间复杂度为 O(n),我们需要找到…

AI 被当做炒作工具?

来源:AI科技大本营(ID:rgznai100)翻译:AI科技大本营编译:禾木木上班路上由于高峰期,眼看就要迟到了,这个时候会想“如果汽车能自动完成这种高度重复的动作,我就可以在路上参加我的会…

第五周助教心得体会

本周心得: 本周为我参加助教工作的第五周。本周同学们要搞定的内容: 作业链接 fork词频统计仓库,创建修改分支对代码进行效能分析,改进后提交将过程写入博客并发布(提交42人 未提交31人 作业平均成绩:6.7分&#xff0c…

牛客16732 序列(排列组合)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 链接:https://ac.nowcoder.com/acm/problem/16732 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语…

什么是传感器融合?我们从“盲人摸象”讲起……

来源:传感器专家网今天,我们的生活高度依赖传感器。传感器作为人类“五感”的延伸,去感知这个世界,甚至可以观察到我们人体感知不到的细节,这种能力也是未来智能化社会所必须的。不过,单个传感器的性能再卓…

算法竞赛入门经典 例题6-2 铁轨(C、python)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 某城市有一个火车站,铁轨铺设如图所示。有n节车厢从A方向驶入车站,按进站顺序编号为 1~n 。你的任务是判断是否能让它们按照某种特定的顺序进入 B 方…

redis集群的搭建详细教程

1 Redis-cluster架构图 redis-cluster投票:容错 (至少要三个才可以,才能超过半数) 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效…

王飞跃 | 面向未来的AI人才应该具备这3种思维

来源:湛庐阅读作者:王飞跃 苇草智酷学术委员、中科院自动化研究所复杂系统与智能科学重点实验室主任、中国科学院社会计算与平行系统研究中心主任当今最好的人工智能程序到底有多智能?它们是如何工作的?能做些什么?我…

Java安全API

java提供了完整的密码学API,我们可以结合密码学相关的概念来系统的学习这些API。 1.密码学简介(crypto) 密码学通俗来说就是研究如何对信息进行加密和破密,如果不是专门研究信息安全,通常我们只需学习和使用加密的方法,所以破密的相关知识我们…

算法竞赛入门经典 例题6-6 小球下落(python、C)

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 问题描述: 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为 1,2,3,… ,2D -…

NLPer,是时候重视因果推理了!这有一份杨笛一等撰写的综述

来源:机器之心编辑:张倩在这篇综述论文中,来自佐治亚理工学院的杨笛一等十几位研究者系统阐述了自然语言处理中的因果推理。科学研究的一个基本目标是了解因果关系。然而,尽管因果在生活和社会科学中扮演了重要角色,它…

【知识图谱】一、知识表示与知识建模

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 一、早期知识表示简介 知识表示的重要性 知识是智能的基础 机器可以获得知识机器可以运用知识 符合计算机要求的知识模式 计算机能存储、处理的知识表示模式数据结构(List、Table、T…