MongoDB之游标的使用,简单易懂

db.collection.find() 可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段。并返回到匹配文档的游标,可以随意修改查询限制、跳跃、和排序顺序的功能。

为了完成本关任务,你需要掌握: 1.什么是游标; 2.如何使用游标。

什么是游标

通俗的说,游标不是查询结果,而是查询的返回资源,或者接口。通过这个接口,你可以逐条读取。就像 fopen 打开文件,得到一个资源一样,通过资源,可以一行一行的读文件。

使用循环插入数据

我们首先插入10000条数据到集合 items,因为 mongodb 底层是 javascript 引擎,所以我们可以使用 js 的语法来插入数据:

  1. for(var i=0;i<10000;i++)db.items.insert({_id:i,text:"Hello MongoDB"+i})

插入后查看效果,如图1所示:

图1

                                                                        图 1

声明游标

定义一个变量来保存这个游标,find 的查询结果(_id<=5)赋值给了游标 cursor 变量,代码如下:

  1. var cursor=db.items.find({_id:{$lte:5}})
打印游标中的数据信息

有四种方法进行打印:

  • printjson(cursor.next()) 打印下一条数据,如图 2 所示:

图2

                                                                         图 2

注意:当取完游标中的数据,又进行打印,会报错。

  • 使用 js 的 while 语法来循环打印,具体步骤如图 3 所示:

图3

                                                                       图 3

  • 使用 for 循环打印,具体步骤如图 4 所示:

    图4

                                                                 图 4

  • 使用 forEach 打印,具体步骤如图 5 所示:

图5

                                                                         图 5

游标的使用场景

我们可以在分页的情况下使用游标。

假设每页有10行,我们查询第701页,可以配合 skip() 和 limit() 来实现,具体步骤如图6所示:

图6

                                                                         图 6

如果不想全部取出,只取出某一个,可以使用如下方法,取出数组下标,具体步骤如图7所示:

图7

                                                                        图 7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nuhao_

谢谢你打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值