亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 數(shù)據(jù)庫(kù) > MongoDB > 正文

mongodb游標(biāo)的作用是什么?怎樣使用?

2024-09-07 00:22:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
      這篇文章給大家分享的是有關(guān)MongoDB 游標(biāo)的內(nèi)容,關(guān)于游標(biāo)我們?cè)赟QL數(shù)據(jù)庫(kù)中也有接觸過(guò),在MongoDB中的游標(biāo)在功能上與關(guān)系型數(shù)據(jù)庫(kù)中的游標(biāo)也是大同小異,下面就跟隨小編一起來(lái)了解一下MongoDB中的游標(biāo)吧。
 
       游標(biāo)相當(dāng)于C語(yǔ)言的指針,可以定位到某條記錄,在MongoDB中,則是文檔。因此在mongoDB中游標(biāo)也有定義,聲明, 打開,讀取,關(guān)閉這么個(gè)過(guò)程。客戶端通過(guò)游標(biāo),能夠?qū)崿F(xiàn)對(duì)最終結(jié)果進(jìn)行有效的控制,諸如限制結(jié)果數(shù)量,跳過(guò)部分結(jié)果或根據(jù)任意鍵按任意順序的組合對(duì)結(jié)果進(jìn)行各種排序等。
       一、mongoDB游標(biāo)介紹
 
  db.collection.find()方法返回一個(gè)游標(biāo),對(duì)于文檔的訪問(wèn),我們需要進(jìn)行游標(biāo)迭代
  mongoDB的游標(biāo)與關(guān)系型數(shù)據(jù)庫(kù)SQL中的游標(biāo)類似,可以通過(guò)對(duì)游標(biāo)進(jìn)行(如限制查詢結(jié)果數(shù),跳過(guò)的結(jié)果數(shù)等)設(shè)置來(lái)控制查詢結(jié)果
  游標(biāo)會(huì)消耗內(nèi)存和相關(guān)系統(tǒng)資源,游標(biāo)使用完后應(yīng)盡快釋放資源
  在mongo shell中,如果返回的游標(biāo)結(jié)果集未指定給某個(gè)var定義的變量,則,游標(biāo)自動(dòng)迭代20次,即輸出前20個(gè)文檔,超出20的情形則需要輸入it來(lái)翻頁(yè)
  本文內(nèi)容描述手動(dòng)方式來(lái)實(shí)現(xiàn)游標(biāo)迭代來(lái)訪問(wèn)文檔或者是用索引迭代
 
  聲明游標(biāo)
      var cursor = db.collectioName.find(query,projection);
 
  打開游標(biāo)
      Cursor.hasNext() 判斷游標(biāo)是否已經(jīng)取到盡頭
 
  讀取數(shù)據(jù)
      Cursor.Next()  取出游標(biāo)的下一個(gè)文檔
 
  關(guān)閉游標(biāo)
      cursor.close()  此步驟可省略,通常為自動(dòng)關(guān)閉,也可以顯示關(guān)閉
 
  用while循環(huán)來(lái)遍歷游標(biāo)示例
      var mycursor = db.bar.find({_id:{$lte:5}})
      while(mycursor.hasNext()) {
          printjson(mycursor.next());
          }
 
  游標(biāo)生命周期
      a、游標(biāo)完成匹配結(jié)果的迭代后,它會(huì)清除自身;
      b、客戶端的游標(biāo)已經(jīng)不在作用域內(nèi),驅(qū)動(dòng)程序回向服務(wù)器發(fā)送一條特別的消息,讓其銷毀;
      c、缺省情況下,游標(biāo)在十分鐘內(nèi)沒(méi)有使用,游標(biāo)自動(dòng)關(guān)閉或者客戶端已經(jīng)迭代完整個(gè)游標(biāo);
      d、可以通過(guò)cursor.noCursorTimeout()來(lái)定義游標(biāo)超時(shí)時(shí)間
          如:var myCursor = db.users.find().noCursorTimeout()
      e、對(duì)于自定義超時(shí)時(shí)長(zhǎng)的游標(biāo)可以使用cursor.close() 來(lái)關(guān)閉游標(biāo)
          如:db.collection.find(<query>).close()
 
       二、當(dāng)前環(huán)境及數(shù)據(jù)準(zhǔn)備
 
 repSetTest:PRIMARY> db.version()
  3.0.12
  //創(chuàng)建包含29個(gè)文檔的集合user
  repSetTest:PRIMARY> for (var i=1;i<30;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  //上面的結(jié)果只輸出了20行,這個(gè)提示表明查看更多應(yīng)輸入it
 
  repSetTest:PRIMARY> it
  { "_id" : ObjectId("5804d07fd974b32430ea975c"), "id" : 21, "ename" : "usr21" }
   ..............
  { "_id" : ObjectId("5804d07fd974b32430ea9764"), "id" : 29, "ename" : "usr29" }
 
       三、使用print輸出游標(biāo)結(jié)果集
 
 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"
  }
  //上述查詢中通過(guò)var myCursor進(jìn)行變量的定義,相當(dāng)于SQL中的declare cursor cur_name is select ..
  //變量 myCursor定義僅僅是定義,并不會(huì)訪問(wèn)數(shù)據(jù)庫(kù),而是在myCursor.hasNext()真正訪問(wèn)數(shù)據(jù)庫(kù)
  //myCursor.next()則是輸出下一條記錄,hasNext()訪問(wèn)數(shù)據(jù)庫(kù)時(shí)會(huì)根據(jù)缺省游標(biāo)設(shè)定將結(jié)果讀取到本地
 
       四、使用printjsont輸出游標(biāo)結(jié)果集
 
  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()進(jìn)行迭代
 
  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"
  }
       六、基于數(shù)組索引迭代
 
       可以使用toArray()將游標(biāo)迭代文檔返回到一個(gè)數(shù)組,然后通過(guò)數(shù)組下標(biāo)方式進(jìn)行訪問(wèn)。
       該方法將所有由游標(biāo)返回的文檔裝載進(jìn)內(nèi)存。
 
 //如下示例,將游標(biāo)返回的內(nèi)容傳遞到數(shù)組,然后使用 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
  }
 
  //也可以將數(shù)組元素輸出到某個(gè)變量,然后在用printjson(myDocument)輸出這個(gè)變量,如下
  repSetTest:PRIMARY> var myDocument = documentArray[3];
  repSetTest:PRIMARY> printjson(myDocument)
  {
      "_id" : ObjectId("580d775edeb57e4d05eec0f2"),
      "id" : 24,
      "ename" : "usr24"
  }
 
       七、調(diào)整游標(biāo)迭代次數(shù)
 
 //設(shè)置迭代顯示的次數(shù),如下設(shè)置為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 //從上面的查詢結(jié)果可知,當(dāng)輸出5個(gè)文檔就提示需要輸入it來(lái)查看更多
  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
       八、查看游標(biāo)度量信息
 
 可以通過(guò)db.serverStatus()查看游標(biāo)狀態(tài)相關(guān)的信息,這些信息通常包括
      從服務(wù)器上次啟動(dòng)之后游標(biāo)超時(shí)的數(shù)量
      自定義游標(biāo)超時(shí)的數(shù)量
      游標(biāo)打開后已經(jīng)pinned的數(shù)量
      打開游標(biāo)的總數(shù)目
  //如下查詢本機(jī)游標(biāo)的信息    
  repSetTest:PRIMARY> db.serverStatus().metrics.cursor
  {
      "timedOut" : NumberLong(2),
      "open" : {
          "noTimeout" : NumberLong(0),
          "pinned" : NumberLong(0),
          "total" : NumberLong(2)
      }
  } 

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久香蕉精品视频| 成人高清在线视频| 一区二区中文| 亚洲激情图片网| 国产成人免费av电影| √天堂中文官网8在线| 精品无人区一区二区三区竹菊| 91精品国产一区二区在线观看| 色www永久免费视频首页在线| 国产一区二区在线观看免费播放| 色多多视频网站| 狠狠色伊人亚洲综合成人| 欧美xxxx中国| 高清日韩av| 亚洲欧洲日韩国产| 老妇女50岁三级| 日韩成人黄色| 欧美在线亚洲一区| 最好看的日本字幕mv视频大全| 日韩av一区二区三区在线| 香蕉免费一区二区三区在线观看| 色多多在线观看| crdy在线观看欧美| 成人黄色影片在线| 手机av在线播放| a级片在线免费看| 午夜福制92视频| 激情五月深爱五月| 巨胸大乳www视频免费观看| 国产精品白丝av嫩草影院| 网站在线你懂的| 99久久久久久中文字幕一区| 欧美高清videosex极品| 一本一本久久a久久精品综合小说| 稀缺呦国内精品呦| 欧美午夜电影在线| 999一区二区三区| 中文字幕日韩免费视频| heyzo视频在线播放| 成人亚洲在线观看| 国产电影精品久久禁18| 亚洲午夜久久久久久久久| 91麻豆精品国产无毒不卡在线观看| 影音先锋欧美激情| 美女又爽又黄视频毛茸茸| 国外成人在线播放| 成人激情免费电影网址| 91成人app| 国产丝袜精品视频| 奇米影视狠888| 欧美/亚洲一区| 丝袜老师办公室里做好紧好爽| 日韩成人午夜| 精品亚洲精品福利线在观看| 相泽南亚洲一区二区在线播放| av爱爱亚洲一区| 久久久国产精彩视频美女艺术照福利| 天天色天天上天天操| 国产精品77777竹菊影视小说| 97精品视频在线观看自产线路二| 日韩影片在线播放| 欧美一区国产一区| 国产传媒欧美日韩成人精品大片| 国产亚洲精品码| 国产手机视频精品| 国产精品久久久久久久免费软件| 亚洲免费在线观看av| 未来日记在线观看| 再深点灬舒服灬太大了添少妇视频| 综合欧美一区二区三区| 色www永久免费视频首页在线| 最新日韩免费视频| 99久久精品免费看| 偷偷看偷偷操| 97久久精品一区二区三区的观看方式| 卡一卡二卡三在线观看| 欧美一区不卡| 精品日本高清在线播放| 国内精品福利视频| 在线观看日本中文字幕| 欧美无人区码suv| youjizz国产精品| 2020久久国产精品| 7777精品伊人久久久大香线蕉最新版| 久久久99爱| 激情视频在线观看| 在线看一区二区| jizz18日本| 精品999网站| 91极品身材尤物theporn| 国产精品手机在线观看| 久艹视频在线免费观看| 深夜福利一区二区| 和岳每晚弄的高潮嗷嗷叫视频| 亚洲高清在线不卡| 欧美色第一页| 欧美性受xxxx黑人爽| 免费av网页| 欧美黑人xxx| 日本1区2区| 97人妻一区二区精品视频| 欧美一区二区三区视频免费播放| 国产精品mp4| 日韩精品在线中文字幕| 中文字幕色网站| 日本高清视频网站www| 色偷偷综合网| 欧美日韩国产成人| 性欧美hd调教| 亚洲丝袜美腿一区| 久久a级毛片毛片免费观看| 亚洲综合成人婷婷小说| 97超碰人人模人人人爽人人爱| 国产在线观看av| 另类专区欧美蜜桃臀第一页| 国产精品日韩在线播放| 欧美成人精品三级在线观看| 欧美1区2区3区4区| 午夜在线精品偷拍| 国产视频中文字幕| 久久久久91| 麻豆影院在线观看| 蜜臀99久久精品久久久久小说| 免费看a网站| 色婷婷av一区二区三区大白胸| 国产精品久久久久久久久久辛辛| 99久久99九九99九九九| 天堂在线中文字幕| 国产精品女主播一区二区三区| 亚洲跨种族黑人xxx| 亚洲精品国产精品国自产| 亚洲精品福利| 97超碰在线公开在线看免费| 欧美v亚洲v综合v国产v仙踪林| 丰满人妻熟女aⅴ一区| 国产一级免费观看| 国产午夜精品久久久久久久久| 东京热无码av男人的天堂| 欧美激情一区二区三区p站| 国产极品视频| 欧美一级午夜免费电影| 亚洲国产精品国自产拍av秋霞| 中文字幕91爱爱| 一区二区三区四区视频在线| 国产亚洲成av人片在线观看桃| 先锋av资源色| 久久人人99| 精品久久视频| 丰满人妻一区二区三区53视频| 欧美高清videos性极品| 日韩av电影免费在线观看| 国产精品扒开腿做爽爽| 噜噜噜久久亚洲精品国产品麻豆| 欧美精品丝袜久久久中文字幕| 青青草原在线亚洲| 亚洲熟妇av一区二区三区| 黄色av网址在线播放| 小说区亚洲自拍另类图片专区| 欧美午夜精品理论片a级按摩| 久久久久久久久久久影视| 91天堂在线观看| www视频在线| 91在线资源站| aaaaaa亚洲| 国产jzjzjz丝袜老师水多| 欧美图片一区二区三区| 欧美另类极品videosbest最新版本| 欧美日韩在线免费播放| 欧美一区二区中文字幕| 欧美性高跟鞋xxxxhd| 一区二区成人国产精品| 国产亚洲一区二区手机在线观看| a毛片在线播放| 亚洲传媒在线| 婷婷精品视频| 免费黄色小网站| 三年片大全在线观看大全有哪些| 亚洲美女福利视频网站| 91福利区在线观看| 999久久久精品视频| 色中色在线视频| 国产国语性生话播放| 播播国产欧美激情| 欧美高清激情视频| 校园春色亚洲色图| 国产成人精品在线看| 欧美一级二区| 久久久久久久影视| 国内精品国产三级国产aⅴ久| 欧美另类暴力丝袜| 欧美特黄一区二区三区| 毛片在线视频播放| 中文字幕55页| 天堂成人在线观看| 国产精品久久久久久久成人午夜| 国产精品国产| 亚洲综合一二区| 网曝91综合精品门事件在线| 午夜精品亚洲| 欧美三级一区二区三区| av中文字幕电影在线看| 印度午夜性春猛xxx交| 色国产精品一区在线观看| 精品久久久99| 蜜臀久久99精品久久久久宅男| 制服丝袜第一页在线观看| 青青草av免费在线观看| 欧美亚洲国产一区二区三区va| 九九热视频免费观看| 久久免费99精品久久久久久| 欧美在线一级视频| 免费国产羞羞网站美图| 欧美国产日韩亚洲一区| 免费网站看v片在线a| 国产精品视频xxxx| 中国女人真人一级毛片| 欧美视频综合| 久久久久国产精品一区二区| 好吊视频一区二区三区| а√中文在线天堂精品| 欧美xxxx性xxxxx高清视频| 区一区二视频| 精品人妻一区二区三区视频| 免费成人在线电影| 欧美国产综合在线| 国产欧美va欧美va香蕉在| av网页在线观看| 亚洲综合色婷婷| 玖玖爱这里只有精品| 成人av免费看| 久久婷婷五月综合色丁香| 亚洲国产欧美在线成人app| 成人美女在线观看| 久久精品国产96久久久香蕉| 尤物在线视频观看| 麻豆传媒在线免费| 精品免费一区二区| 91福利国产在线观看菠萝蜜| 在线观看一区二区三区三州| 久久中文字幕av| 国产一区二区免费视频| 黄网站免费在线播放| 精品久久久久久久久久久久久久久久久久| 天天操,天天操| 伊人网在线免费观看| 欧美爱爱视频网站| 国产啪精品视频| jvid福利在线一区二区| 成人在线观看免费完整| 99国产精品久久久久久久久久久| 国产欧美高清视频在线| 精品人妻互换一区二区三区| 一色屋精品亚洲香蕉网站| 91麻豆精品91久久久久久清纯| 国产大学生校花援交在线播放| 中文字幕人成一区| 久久精品亚洲a| 午夜小视频福利在线观看| av亚洲在线观看| 久久综合在线观看| 激情四射综合网| 亚洲最大成人网4388xx| www.久久| 日韩av片在线播放| 中文在线观看免费网站| 99re视频在线播放| 久久国产欧美| 影音av资源站| 无码 人妻 在线 视频| 国产黄在线观看免费观看不卡| 欧美色图第二页| 国产在线视频你懂得| 久久久久久久久久久久久久久久久久久久| 日韩欧美美女一区二区三区| 国产成+人+日韩+欧美+亚洲| 精品免费二区三区三区高中清不卡| aaa亚洲精品| 伊人久久久久久久久久久久久| 成人性生交大片免费看视频直播| 亚洲影院一区| 91麻豆国产香蕉久久精品| 黄视频在线观看www| 久草国产在线视频| 国产污在线观看| 欧美性猛交xxxx黑人| av网站在线播放| 日韩欧美成人午夜| 麻豆免费精品视频| 国产精品香蕉国产| 国产91精品在线播放| 亚洲香蕉av在线一区二区三区| 一区二区三区.www| 亚洲免费成人av电影| 久草在线免费资源| 天堂成人娱乐在线视频免费播放网站| 亚洲**毛片| 国产区精品视频在线观看豆花| 在线欧美不卡| 台湾成人av| 最近更新在线中文字幕一页| 韩国成人福利片在线播放| 四虎永久在线观看免费网站网址| 成人av免费| 91精品国产福利在线观看麻豆| 久久久久毛片免费观看| 日本韩国一区| 97视频色精品| 欧美hdfree性xxxx| 黄色一级视频免费观看| 久久久久高潮毛片免费全部播放| 久久久三级国产网站| 国产一区不卡在线| 日韩电视剧免费观看网站| 久久久久久久久久久久久9999| 中文字幕一区二区三中文字幕| 亚洲尤物在线视频观看| 91精品国产91久久久久久| 麻豆国产一区二区三区四区| 国产精品大全| 国产裸舞福利在线视频合集| 人妻少妇精品一区二区三区| 日韩影院精彩在线| 九九热国产在线| 三年中国中文观看免费播放| 国产精品后入内射日本在线观看| 不卡av免费观看| 意大利激情丛林无删减版dvd| 美女网站视频黄色|