为了营造大批量数据,我们可以这样写javascript脚本

for (var i=1;i<=10000;i++)
{

   if(i%2==1)
   {
       db.cursortest.insert({_id:i,name:\'程劲\'+i,age:19,major:[\'泰拳\',\'散打\',\'巴西柔术\',\'和saintding大哥玩SM\']});
   }
   else if(i%2==0)
   {
       db.cursortest.insert({_id:i,name:\'陈培昌\'+i,age:21,major:[\'泰拳\',\'散打\',\'巴西柔术\',\'和saintding大哥一起厮混\']});
   }
}

 显然,这样海量的数据,需要cursor帮助我们完成查询

可以指定只显示前10行

var mycursor = db.cursortest.find({_id:{$lte:10}})

mycursor.next()依次取下一条

当然mongodb为我们封装了forEach函数来循环打印结果注意大小写:

mycursor.forEach(function(obj){printjson(obj)})

效果如下:

还有分页的功能:

var duwa = db.cursortest.find().skip(9990)

duwa.forEach(function(obj){printjson(obj)})

1 var tianwadi = db.cursortest.find().skip(9990).limit(5)
2 tianwadi.forEach(function(obj){printjson(obj)})

跨过前9990行,只显示5条

下面使用游标的toArray()方法,结果卧操~

注意!无论在命令行还是类似studio3T这样的IDE,在每次执行完游标的操作后,游标已经穷尽了数据集,所以要通过再声明一次游标的方法,以确保游标的forEach操作能继续进行。

 

var tianwadi = db.cursortest.find().skip(9990).limit(5)
tianwadi.toArray()
输出结果会返回一个列表,如下:
[
    {
        "_id" : 9991,
        "name" : "程劲9991",
        "age" : 19,
        "major" : [
            "泰拳",
            "散打",
            "巴西柔术",
            "和丁大哥玩SM"
        ]
    },
    {
        "_id" : 9992,
        "name" : "陈培昌9992",
        "age" : 21,
        "major" : [
            "泰拳",
            "散打",
            "巴西柔术",
            "和丁大哥一起厮混"
        ]
    },
    {
        "_id" : 9993,
        "name" : "程劲9993",
        "age" : 19,
        "major" : [
            "泰拳",
            "散打",
            "巴西柔术",
            "和丁大哥玩SM"
        ]
    },
    {
        "_id" : 9994,
        "name" : "陈培昌9994",
        "age" : 21,
        "major" : [
            "泰拳",
            "散打",
            "巴西柔术",
            "和丁大哥一起厮混"
        ]
    },
    {
        "_id" : 9995,
        "name" : "程劲9995",
        "age" : 19,
        "major" : [
            "泰拳",
            "散打",
            "巴西柔术",
            "和丁大哥玩SM"
        ]
    }
]

 如果只取列表中的第4条操作如下:

var tianwadi = db.cursortest.find().skip(9990).limit(5)

tianwadi.toArray()[4]

返回结果如下;

 

{
    "_id" : 9995,
    "name" : "程劲9995",
    "age" : 19,
    "major" : [
        "泰拳",
        "散打",
        "巴西柔术",
        "和丁大哥玩SM"
    ]
}

 

版权声明:本文为saintdingspage原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/saintdingspage/p/9700259.html