mongodb--游标与链式查找
一:游标 【能不用游标的地方就不要用游标,它是占用数据库资源的】
- find操作是返回一个游标,为了方便我们查看结果,mongodb shell会自动迭代结果。【游标也是递增的】
2.迭代结果的两种方式
《1》forEach
cursor.forEach(function(x){
... print(x.name);
... });
hxc41
hxc42
hxc43
《2》hasNext循环
var cursor = db.person.find();
while(cursor.hasNext()){
printjson(cursor.next())
});
《3》while加上next
> var cursor=db.person.find()
> while(cursor.hasNext()){ var single=cursor.next(); print(single.name) }
- 既然是游标(Cursor),那么就不会立即去查询数据库,这样的话,就有利于我们做【链式查找】。
《1》在find之后执行count。
《2》在find之后执行skip,limit,sort等等。
那么这些写法有点像C#中的linq to object, lambda
> db.person.find({}).limit(2).sort({"age":-1})
{ "_id" : ObjectId("56760f3c5001a3b4af6015b7"), "name" : "hxc99", "age" : 5.2105263157894735 }
{ "_id" : ObjectId("56760f3c5001a3b4af6015b6"), "name" : "hxc98", "age" : 5.157894736842105 }
> db.person.find({}).skip(2).limit(2).sort({"age":-1})
{ "_id" : ObjectId("56760f3c5001a3b4af6015b5"), "name" : "hxc97", "age" : 5.105263157894737 }
{ "_id" : ObjectId("56760f3c5001a3b4af6015b4"), "name" : "hxc96", "age" : 5.052631578947368 }
- sort方法参数描叙:【1:升序, -1:降序】 sql => asc,des c
- limit,skip 分页演示
pageIndex 表示页码
pageSize: 每页展示的数量
recordcount:总记录数
> db.person.find({}).skip((pageindex-1)*pageSize).limit(pageSize)
mongodb--游标与链式查找的更多相关文章
- [PTA] 数据结构与算法题目集 6-4 链式表的按序号查找 & 6-5 链式表操作集 & 6-6 带头结点的链式表操作集
带不带头结点的差别就是,在插入和删除操作中,不带头结点的链表需要考虑两种情况:1.插入(删除)在头结点.2.在其他位置. 6.4 //L是给定单链表,函数FindKth要返回链式表的第K个元素.如果该 ...
- C语言 线性表 双向链式结构 实现
一个双向链式结构实现的线性表 duList (GCC编译). /** * @brief 线性表双向链表结构 * @author wid * @date 2013-10-28 * * @note 若代码 ...
- C语言 线性表 链式表结构 实现
一个单链式实现的线性表 mList (GCC编译). /** * @brief 线性表的链式实现 (单链表) * @author wid * @date 2013-10-21 * * @note 若代 ...
- javascript实现数据结构:线性表--线性链表(链式存储结构)
上一节中, 线性表的顺序存储结构的特点是逻辑关系上相邻的两个元素在物理位置上也相邻,因此可以随机存取表中任一元素,它的存储位置可用一个简单,直观的公式来表示.然后,另一方面来看,这个特点也造成这种存储 ...
- JavaScript 链式结构序列化详解
一.概述 在JavaScript中,链式模式代码,太多太多,如下: if_else: if(...){ //TODO }else if(...){ //TODO }else{ //TODO } swi ...
- POJ 2002 Squares 解题报告(哈希 开放寻址 & 链式)
经典好题. 题意是要我们找出所有的正方形.1000点,只有枚举咯. 如图,如果我们知道了正方形A,B的坐标,便可以推测出C,D两点的坐标.反之,遍历所有点作为A,B点,看C,D点是否存在.存在的话正方 ...
- [置顶] ※数据结构※→☆线性表结构(queue)☆============优先队列 链式存储结构(queue priority list)(十二)
优先队列(priority queue) 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除.在优先队列中,元素被赋予优先级.当访问元素时,具有最高优先级的元素最先删除.优先队列具有 ...
- C++编程练习(2)----“实现简单的线性表的链式存储结构“
单链表采用链式存储结构,用一组任意的存储单元存放线性表的元素. 对于查找操作,单链表的时间复杂度为O(n). 对于插入和删除操作,单链表在确定位置后,插入和删除时间仅为O(1). 单链表不需要分配存储 ...
- guoshiyv 数据结构与算法2-1 线性链式存储
线性链式存储: 包含两部分:1.存储的单个元素 2.指针,指向下一个的地址 typedef struct() { ElementType Data; struct Node *Next; }Lis ...
随机推荐
- .NET通用基本权限系统框架源代码
DEMO下载地址: http://download.csdn.net/detail/shecixiong/5372895 一.开发技术:B/S(.NET C# ) 1.Windows XP以上 (支援 ...
- OSGI依赖问题处理
用osgi实现java的模块化和热插拔时要考虑好两个问题,不同bundle间如何通信?依赖怎么处理? OSGi的一个标准就是各个bundle之间是相互隔离的,每个bundle都有自己的classloa ...
- bzoj2503 相框——思路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2503 思路题: 首先,这种问题应该注意到答案只跟度数有关,跟其他什么连接方法之类的完全无关: ...
- Python入门 五、学着机器思考
正则表达式(1) import re text = "Hi,I am Shirley Hilton.I am his wife." m = re.findall(r"hi ...
- 图的最短路径Dijkstra
#include <stdio.h> #include <string.h> #include <vector> #include <queue> #i ...
- EF6 自定义迁移表名
在下列代码片段中已经EF6迁移表的表名更改为 MigrationHistory注意:下代码片段建议和DbContext同程序集 public class ModelConfiguration : Db ...
- C#利用ICSharpCode将远程文件打包并下载
应用于ASP.NET MVC中 方法主体代码: public void GetFilesByOrder(string Order_ID, string IntNumber) { MemoryStrea ...
- Android 复制文本内容到系统剪贴板(自由复制)
直接上代码:(对应的类:android.content.ClipboardManager) //获取剪贴板管理器: ClipboardManager cm = (ClipboardManager) g ...
- Gradle sync failed: Could not find method android() for arguments 错误的解决办法
这个问题本质上是Android-gradle的一个使用限制. 对应的英文文档android_tool文档 如果你的App包含了多个Android模块, 应该尽量避免给每个模块手动指定编译SDK版本. ...
- Arduino控制继电器模块
一.实物图 二.例子代码 每隔5s切换断开 接通状态