您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
mongodb-游标操作
发布时间:2017-11-22 19:10:19编辑:雪饮阅读()
mongodb是以js作为引擎的,那么js的函数语法再这里是完全可以使用的。如这里使用for循环插入10000条数据:
for(var i=0;i<10000;i++){db.bar.insert({_id:i+1,title:'hello world',content:'aaa'+i})}
find()查询结果默认只显示前20条,如果要查看更多输入it命令即可
游标:
声明一个变量用来存储结果集资源:
var mycusor=db.bar.find({_id:{$lte:5}})
print函数可以打印当前游标位置所对应的资源,资源的next函数可使得游标位置移动到下一个位置。下面是打印了该资源中的第一条记录。
print(mycusor.next());
printjson可以将游标所在位置的资源以json对象的形式输出,由于每次调用next后就会导致游标位置移动到下一个位置,上面调用过一次,所以下面将会将资源中的第二条记录以json对象的形式呈现
printjson(mycusor.next());
如果游标游到尽头了则next会报异常错误的。
hasNext方法可以判断游标是否到达尽头,则可以通过该方法进行while循环以遍历取出所有查询结果
while(mycusor.hasNext()){
printjson(mycusor.next());
}
同样也可以使用for循环来遍历所有查询的结果
for(var mycursor=db.bar.find({_id:{$lte:5}});mycursor.hasNext();){
printjson(mycursor.next());
}
还可以使用mongodb提供的foreach函数
下面的obj就是循环中游标所在位置对应的单元
mycusor.forEach(function(obj){printjson(obj)});
分页使用:
skip函数可将跳过指定条数开始查询,类似mysql的limit(start,lenth)中的start参数一样
var mycursor=db.bar.find().skip(9995);
limit函数可现在查询从start开始查询时最多查询条数,类似mysql的limit(start,lenth)中的lenth参数一样。
var mycursor=db.bar.find().skip(9000).limit(10);
toArray可将查询结果集的资源转换为json数组
toArray调用后游标将会游动到尽头
mycursor.toArray()
打印toArray指定索引的json值
printjson(mycursor.toArray()[4]);
toArray尽量不要使用,因为其将资源的所有行立即以对象的形式组织在内存里面了。如果资源中的行数比较少,可以使用。
关键字词:mongodb,游标
上一篇:mongodb-用户管理
下一篇:mongodb-附件