• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    Mongodb查询记录

    Posted by 撒得一地 on 2016年3月28日 in Mongodb教程
    国外稳定加速器推荐    Express | Vypr

    语法

    MongoDB 查询数据的语法格式如下:

    >db.COLLECTION_NAME.find()
    

    find() 方法以非结构化的方式来显示所有文档。

    如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

    >db.col.find().pretty()
    

    pretty() 方法以格式化的方式来显示所有文档。

    实例,分别用find()方法进行实例查询:

    >db.test.find()
    {"_id":ObjectId("4c2209f9f3924d31102bd84a"),"name":"psz"}
    {"_id":ObjectId("4c2209f9f3924d31102bd84b"),"name":"psz2"}
    

    游标方式输出

    除了上面的例子,还可以通过游标的方式或结合 while 来输出:

    > var cursor = db.things.find();
    > while (cursor.hasNext()) printjson(cursor.next());
    {"_id":ObjectId("4c2209f9f3924d31102bd84a"),"name":"psz"}
    {"_id":ObjectId("4c2209f9f3924d31102bd84b"),"name":"psz2"}
    

    上面的例子显示了游标风格的迭代输出. hasNext() 函数告诉我们是否还有数据, 如果有则可以调用 next() 函数。

    在 MongoDB shell 里, 我们也可以把游标当作数组来用:

    > var cursor = db.things.find();
    > printjson(cursor[1])
    {"_id":ObjectId("4c2209f9f3924d31102bd84b"),"name":"psz2"}
    

    forEach方式输出

    当我们使用的是 JavaScript shell, 可以用到 JS 的特性, forEach 就可以输出游标了。 下面的例子就是使用 forEach() 来循环输出: forEach() 必须定义一个函数供每个游标元素调用。如:

    > db.test.find().forEach(printjson);
    {"_id" : ObjectId("4c2209f9f3924d31102bd84a"),"name" : "psz"}
    {"_id" : ObjectId("4c2209f9f3924d31102bd84b"),"name" : "psz2"}
    

    上面就是通过forEach返回游标,然后再通过printjson函数输出游标。

    使用游标时候请注意占用内存的问题, 特别是很大的游标对象, 有可能会内存溢出。 所以应该用迭代的方式来输出. 下面的示例则是把游标转换成真实的数组类型:

    > var arr = db.test.find().toArray();
    > arr[1];
    {"_id" : ObjectId("4c2209f9f3924d31102bd84b"),"name" : "psz2"}
    

    请注意上面关于游标的这些特性只是在 MongoDB shell 里使用, 而不是所有的其他应用程序驱动都支持。

    MongoDB 游标对象没有快照,如果有其他用户在集合里第一次或者最后一次调用next(), 你可能得不到游标里的数据. 所以要明确的锁定你要查询的游标.

    本文地址://www.cfage.com/1755.html

    上一篇:

    下一篇:

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    5 + 9 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 时时彩平台 福建22选5 快乐时时彩是全国开奖号码 北京赛车冠军精确算法 pk109码滚雪球一天3把 篮彩最好购彩软件 排列五开奖 欢乐生肖是什么意思 北京pk10大特计算方式 双色球亿元规律 浙江体彩20选5开奖时间 秒速时时彩官网下载 福彩3d走势图带连线2元网 河南泳坛夺金481 双色彩票走势图2 足球比分直播188