婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MongoDB 游標詳解及實例代碼

MongoDB 游標詳解及實例代碼

熱門標簽:老虎洗衣店地圖標注 呼和浩特電銷外呼系統加盟 電銷機器人是什么軟件 廣州長安公司怎樣申請400電話 云南外呼系統 濟南電銷機器人加盟公司 杭州人工電銷機器人價格 怎么投訴地圖標注 蘋果汽車租賃店地圖標注

 MongoDB 游標詳解

MongoDB中的游標與關系型數據庫中的游標在功能上大同小異。游標相當于C語言的指針,可以定位到某條記錄,在MongoDB中,則是文檔。因此在mongoDB中游標也有定義,聲明, 打開,讀取,關閉這么個過程。客戶端通過游標,能夠實現對最終結果進行有效的控制,諸如限制結果數量,跳過部分結果或根據任意鍵按任意順序的組合對結果進行各種排序等。下文是針對MongoDB游標的具體介紹。

一、mongoDB游標介紹

  db.collection.find()方法返回一個游標,對于文檔的訪問,我們需要進行游標迭代
  mongoDB的游標與關系型數據庫SQL中的游標類似,可以通過對游標進行(如限制查詢結果數,跳過的結果數等)設置來控制查詢結果
  游標會消耗內存和相關系統資源,游標使用完后應盡快釋放資源
  在mongo shell中,如果返回的游標結果集未指定給某個var定義的變量,則,游標自動迭代20次,即輸出前20個文檔,超出20的情形則需要輸入it來翻頁
  本文內容描述手動方式來實現游標迭代來訪問文檔或者是用索引迭代

  聲明游標
      var cursor = db.collectioName.find(query,projection);

  打開游標
      Cursor.hasNext() 判斷游標是否已經取到盡頭

  讀取數據
      Cursor.Next()  取出游標的下一個文檔

  關閉游標
      cursor.close()  此步驟可省略,通常為自動關閉,也可以顯示關閉

  用while循環來遍歷游標示例
      var mycursor = db.bar.find({_id:{$lte:5}})
      while(mycursor.hasNext()) {
          printjson(mycursor.next());
          }

  游標生命周期
      a、游標完成匹配結果的迭代后,它會清除自身;
      b、客戶端的游標已經不在作用域內,驅動程序回向服務器發送一條特別的消息,讓其銷毀;
      c、缺省情況下,游標在十分鐘內沒有使用,游標自動關閉或者客戶端已經迭代完整個游標;
      d、可以通過cursor.noCursorTimeout()來定義游標超時時間
          如:var myCursor = db.users.find().noCursorTimeout()
      e、對于自定義超時時長的游標可以使用cursor.close() 來關閉游標
          如:db.collection.find(query>).close()

二、當前環境及數據準備

 repSetTest:PRIMARY> db.version()
  3.0.12
  //創建包含29個文檔的集合user
  repSetTest:PRIMARY> for (var i=1;i30;i++){
  ... db.user.insert({"id":i,"ename":"usr"+i});
  ... }
  WriteResult({ "nInserted" : 1 })
  repSetTest:PRIMARY> db.user.count()
  29

  //查詢集合user上所有文檔
  repSetTest:PRIMARY> db.user.find()
  { "_id" : ObjectId("5804d07fd974b32430ea9748"), "id" : 1, "ename" : "usr1" }
  { "_id" : ObjectId("5804d07fd974b32430ea9749"), "id" : 2, "ename" : "usr2" }
        .............................
  { "_id" : ObjectId("5804d07fd974b32430ea975b"), "id" : 20, "ename" : "usr20" }
  Type "it" for more  //上面的結果只輸出了20行,這個提示表明查看更多應輸入it

  repSetTest:PRIMARY> it
  { "_id" : ObjectId("5804d07fd974b32430ea975c"), "id" : 21, "ename" : "usr21" }
   ..............
  { "_id" : ObjectId("5804d07fd974b32430ea9764"), "id" : 29, "ename" : "usr29" }

二、使用print輸出游標結果集

 repSetTest:PRIMARY> var myCursor = db.user.find()
      while (myCursor.hasNext()) {
      print(tojson(myCursor.next()))
  }

  { "_id" : ObjectId("5804d07fd974b32430ea9748"), "id" : 1, "ename" : "usr1" }
     ..........
  {
      "_id" : ObjectId("5804d07fd974b32430ea9751"),
      "id" : 10,
      "ename" : "usr10"
  }
     ................
  {
      "_id" : ObjectId("5804d07fd974b32430ea9764"),
      "id" : 29,
      "ename" : "usr29"
  }
  //上述查詢中通過var myCursor進行變量的定義,相當于SQL中的declare cursor cur_name is select ..
  //變量 myCursor定義僅僅是定義,并不會訪問數據庫,而是在myCursor.hasNext()真正訪問數據庫
  //myCursor.next()則是輸出下一條記錄,hasNext()訪問數據庫時會根據缺省游標設定將結果讀取到本地

三、使用printjsont輸出游標結果集

  repSetTest:PRIMARY> var myCursor = db.user.find({id:{$gt:20}})
      while (myCursor.hasNext()) {
      printjson(myCursor.next());}
  {
      "_id" : ObjectId("5804d07fd974b32430ea975c"),
      "id" : 21,
      "ename" : "usr21"
  }
       .......
  {
      "_id" : ObjectId("5804d07fd974b32430ea9764"),
      "id" : 29,
      "ename" : "usr29"
  }

四、使用 forEach()進行迭代

  repSetTest:PRIMARY> var myCursor = db.user.find({id:{$gt:20}})
  repSetTest:PRIMARY> myCursor.forEach(printjson);
  {
      "_id" : ObjectId("5804d07fd974b32430ea975c"),
      "id" : 21,
      "ename" : "usr21"
  }
      ................
  {
      "_id" : ObjectId("5804d07fd974b32430ea9764"),
      "id" : 29,
      "ename" : "usr29"
  }

五、基于數組索引迭代

    可以使用toArray()將游標迭代文檔返回到一個數組,然后通過數組下標方式進行訪問。

    該方法將所有由游標返回的文檔裝載進內存。

 //如下示例,將游標返回的內容傳遞到數組,然后使用 printjson (documentArray[3])輸出其中的元素
  repSetTest:PRIMARY> var myCursor = db.user.find({id:{$gt:20}})
  repSetTest:PRIMARY> var documentArray = myCursor.toArray();
  repSetTest:PRIMARY> printjson (documentArray[3])
  {
      "_id" : ObjectId("580d775edeb57e4d05eec0f2"),
      "id" : 24,     //Author : Leshami
      "ename" : "usr24" //Blog  : http://blog.csdn.net/leshami
  }

  //也可以將數組元素輸出到某個變量,然后在用printjson(myDocument)輸出這個變量,如下
  repSetTest:PRIMARY> var myDocument = documentArray[3];
  repSetTest:PRIMARY> printjson(myDocument)
  {
      "_id" : ObjectId("580d775edeb57e4d05eec0f2"),
      "id" : 24,
      "ename" : "usr24"
  }

六、調整游標迭代次數

 //設置迭代顯示的次數,如下設置為5
  repSetTest:PRIMARY> DBQuery.shellBatchSize = 5
  5
  repSetTest:PRIMARY> db.user.find()
  { "_id" : ObjectId("5804d07fd974b32430ea9748"), "id" : 1, "ename" : "usr1" }
  { "_id" : ObjectId("5804d07fd974b32430ea9749"), "id" : 2, "ename" : "usr2" }
  { "_id" : ObjectId("5804d07fd974b32430ea974a"), "id" : 3, "ename" : "usr3" }
  { "_id" : ObjectId("5804d07fd974b32430ea974b"), "id" : 4, "ename" : "usr4" }
  { "_id" : ObjectId("5804d07fd974b32430ea974c"), "id" : 5, "ename" : "usr5" }
  Type "it" for more //從上面的查詢結果可知,當輸出5個文檔就提示需要輸入it來查看更多
  repSetTest:PRIMARY> it
  { "_id" : ObjectId("5804d07fd974b32430ea974d"), "id" : 6, "ename" : "usr6" }
  { "_id" : ObjectId("5804d07fd974b32430ea974e"), "id" : 7, "ename" : "usr7" }
  { "_id" : ObjectId("5804d07fd974b32430ea974f"), "id" : 8, "ename" : "usr8" }
  { "_id" : ObjectId("5804d07fd974b32430ea9750"), "id" : 9, "ename" : "usr9" }
  { "_id" : ObjectId("5804d07fd974b32430ea9751"), "id" : 10, "ename" : "usr10" }
  Type "it" for more

七、查看游標度量信息

 可以通過db.serverStatus()查看游標狀態相關的信息,這些信息通常包括
      從服務器上次啟動之后游標超時的數量
      自定義游標超時的數量
      游標打開后已經pinned的數量
      打開游標的總數目
  //如下查詢本機游標的信息    
  repSetTest:PRIMARY> db.serverStatus().metrics.cursor
  {
      "timedOut" : NumberLong(2),
      "open" : {
          "noTimeout" : NumberLong(0),
          "pinned" : NumberLong(0),
          "total" : NumberLong(2)
      }
  }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • mongodb數據庫游標的使用淺析
  • MongoDB中游標的深入學習
  • MongoDB入門教程之聚合和游標操作介紹
  • MongoDB游標超時問題的4種解決方法

標簽:雞西 廈門 玉林 泰安 興安盟 自貢 無錫 遼陽

巨人網絡通訊聲明:本文標題《MongoDB 游標詳解及實例代碼》,本文關鍵詞  MongoDB,游標,詳解,及,實例,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB 游標詳解及實例代碼》相關的同類信息!
  • 本頁收集關于MongoDB 游標詳解及實例代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩国产中文| 中文字幕制服丝袜一区二区三区| 久久午夜色播影院免费高清| 免费观看在线综合| 久久久精品欧美丰满| www.66久久| 国产精品一线二线三线精华| 亚洲免费观看高清完整版在线观看熊| 欧美性感一区二区三区| 国产日韩v精品一区二区| 欧美精品aⅴ在线视频| 成人性生交大合| 亚洲第一搞黄网站| 欧美探花视频资源| 北岛玲一区二区三区四区| 一区二区视频在线| 日韩欧美中文字幕公布| 欧美高清视频在线高清观看mv色露露十八| 久久精品一级爱片| 久久精品国产一区二区三区免费看| 中文字幕免费在线观看视频一区| 久久亚洲欧美国产精品乐播| 国内精品不卡在线| 五月天亚洲精品| 欧美精品一区二区三区蜜桃 | 亚洲欧美一区二区久久| 制服丝袜一区二区三区| 99精品久久99久久久久| 久久99精品国产91久久来源| 亚洲与欧洲av电影| 中文子幕无线码一区tr| 日韩午夜激情av| 欧美一区二区在线看| 国产91露脸合集magnet| 久久精品国产99国产| 亚洲国产精品尤物yw在线观看| 亚洲小说欧美激情另类| 国产精品欧美久久久久无广告| 欧美刺激午夜性久久久久久久| 高清不卡一区二区在线| 91女厕偷拍女厕偷拍高清| 成人丝袜18视频在线观看| 精品中文字幕一区二区| 久久成人免费日本黄色| 国产白丝精品91爽爽久久| 久久福利视频一区二区| 黄网站免费久久| 国产高清在线观看免费不卡| 一本色道亚洲精品aⅴ| 99在线精品免费| 99vv1com这只有精品| 99九九99九九九视频精品| 欧美性极品少妇| 6080国产精品一区二区| 欧美一区二区在线免费观看| 99久久综合国产精品| 91黄色激情网站| 91片在线免费观看| 欧美视频一区在线观看| 欧美成人vps| 国产欧美日韩在线视频| 国产精品视频麻豆| 亚洲另类春色校园小说| 狠狠色综合日日| 亚洲一区二区三区四区的| 日韩精品电影在线观看| 视频一区欧美日韩| 国产综合成人久久大片91| 日本va欧美va精品发布| 男女男精品视频| 粉嫩av一区二区三区在线播放| 91欧美激情一区二区三区成人| 欧美在线|欧美| 在线一区二区三区| 欧美探花视频资源| 欧美电影免费观看高清完整版在线 | 欧美韩日一区二区三区| 国产精品麻豆久久久| 亚洲激情校园春色| **网站欧美大片在线观看| 日韩av一区二区在线影视| 国产成人免费xxxxxxxx| 色综合色综合色综合| 91丨九色porny丨蝌蚪| 欧美一区二区三区免费视频| 欧美激情一区二区三区| 中文在线一区二区| 色综合天天综合网天天看片| 精品日韩成人av| 亚洲三级在线免费观看| 国产999精品久久| 欧美视频一区在线观看| 亚洲国产精品高清| 喷白浆一区二区| 欧美一区二区三区四区视频| 成人欧美一区二区三区白人| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品无码三级在线观看视频| 欧美成人猛片aaaaaaa| 亚洲激情在线播放| 成年人网站91| 18涩涩午夜精品.www| 亚洲人成网站精品片在线观看| 麻豆高清免费国产一区| 91久久国产综合久久| 夜夜嗨av一区二区三区中文字幕| 国产精品亚洲午夜一区二区三区| 4438x亚洲最大成人网| 亚洲特黄一级片| 欧美视频日韩视频| 亚洲免费电影在线| eeuss鲁片一区二区三区 | 91精品欧美久久久久久动漫| 亚洲视频免费看| 国产精品88av| 欧美一区二区三区性视频| 中文字幕亚洲视频| 国产高清视频一区| 欧美久久久久免费| 自拍偷拍国产亚洲| 在线免费不卡电影| 亚洲精品网站在线观看| 成人国产精品免费观看动漫| 亚洲欧美日本在线| 一本色道久久加勒比精品| 国产精品久久看| 日韩欧美123| 久久99精品久久久久婷婷| 91麻豆精品91久久久久久清纯 | 不卡一区二区在线| 国产精品国产自产拍高清av王其 | 国产一区91精品张津瑜| 国产精品国产三级国产普通话蜜臀 | 亚洲色大成网站www久久九九| 久久97超碰国产精品超碰| 欧美日韩国产色站一区二区三区| 91成人网在线| 亚洲成人av资源| 日本黄色一区二区| 精品国产网站在线观看| 日本不卡1234视频| 久久精品欧美日韩| 99视频在线精品| 高清国产一区二区三区| 欧美色精品在线视频| 国内精品伊人久久久久av一坑| 久久嫩草精品久久久精品| 99久久er热在这里只有精品15 | 91精品国产色综合久久ai换脸| 国产一区在线精品| 亚洲国产一二三| 久久精品一区二区三区四区| 91社区在线播放| 成人涩涩免费视频| 韩国v欧美v亚洲v日本v| 亚洲成人一区二区| 日韩美女视频在线| 51精品久久久久久久蜜臀| 韩国一区二区在线观看| 久久久久久久久岛国免费| 欧美乱熟臀69xxxxxx| 日本高清视频一区二区| 亚洲欧洲成人精品av97| 亚洲国产精品黑人久久久| 久久综合九色综合97婷婷女人| 色综合久久中文综合久久牛| 免费成人美女在线观看.| 午夜视频在线观看一区二区| 国产精品污网站| 亚洲人成亚洲人成在线观看图片| 日韩av电影天堂| 7777精品伊人久久久大香线蕉的| 色狠狠桃花综合| 色综合网色综合| 欧美日韩激情一区二区三区| 欧美精三区欧美精三区| 亚洲精品在线观| 制服丝袜国产精品| 国产日韩欧美激情| 亚洲综合丝袜美腿| 精品一区二区三区久久| 波波电影院一区二区三区| 欧洲激情一区二区| 久久嫩草精品久久久精品| 亚洲一区二区美女| 国产一区二区三区免费| 欧美日韩中字一区| 日韩毛片一二三区| 国产馆精品极品| 91精品国产高清一区二区三区| 久久夜色精品国产欧美乱极品| 久久九九99视频| 国产在线精品一区二区夜色| www.欧美亚洲| 美腿丝袜亚洲一区| 不卡的av在线播放| 国产欧美精品一区二区色综合朱莉 | 麻豆精品视频在线观看免费| 日韩综合小视频| 91黄色在线观看|