今天就跟大家聊聊有關(guān)MongoDB中如何使用游標(biāo),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、且末ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的且末網(wǎng)站制作公司
游標(biāo)(Cursor)是處理數(shù)據(jù)的一種方法,為了查看或者處理結(jié)果集中的數(shù)據(jù),游標(biāo)提供了在結(jié)果集中一次一行或者多行前進(jìn)或向后瀏覽數(shù)據(jù)的能力。
游標(biāo)實(shí)際上是一種能從包括多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。游標(biāo)可以被看作是一個(gè)查詢結(jié)果集(可以是零條、一條或由相關(guān)的選擇語(yǔ)句檢索出的多條記錄)和結(jié)果集中指向特定記錄的游標(biāo)位置組成的一個(gè)臨時(shí)文件,提供了在查詢結(jié)果集中向前或向后瀏覽數(shù)據(jù)、處理結(jié)果集中數(shù)據(jù)的能力。有了游標(biāo),用戶就可以訪問(wèn)結(jié)果集中任意一行數(shù)據(jù),在將游標(biāo)放置到某行之后,可以在該行或從該位置的行塊上執(zhí)行操作。
在MongoDB中,使用db.collection.find()方法將返回一個(gè)游標(biāo)。如果要訪問(wèn)文檔,我們需要使用游標(biāo)的迭代器。但是,在mongo shell中,如果沒(méi)有給返回的游標(biāo)指定變量,游標(biāo)將自動(dòng)首先返回前20條記錄。下面我們通過(guò)幾個(gè)具體的例子,來(lái)說(shuō)明如何使用游標(biāo)。
定義游標(biāo)
var mycursor = db.emp.find()
使用游標(biāo)訪問(wèn)文檔
var mycursor = db.emp.find() while(mycursor.hasNext()){ printjson(mycursor.next()) } 也可以像這樣:mycursor.forEach(printjson)
游標(biāo)和數(shù)組
var mycursor = db.emp.find() 定義游標(biāo) var myarray = mycursor.toArray() 將游標(biāo)轉(zhuǎn)成數(shù)組 var myDocument = myarray[3] 通過(guò)數(shù)組元素訪問(wèn)文檔
分頁(yè)查詢: skip和limit
每頁(yè)顯示5條記錄 var mycursor = db.emp.find().limit(5) 第一頁(yè) var mycursor = db.emp.find().limit(5).skip(5) 第二頁(yè)
關(guān)閉游標(biāo):默認(rèn)情況下,10分鐘內(nèi)沒(méi)有使用使用的游標(biāo)會(huì)被自動(dòng)關(guān)閉??梢允褂?noCursorTimeout()來(lái)設(shè)置游標(biāo)的關(guān)閉選項(xiàng),這時(shí)就需要手動(dòng)關(guān)閉游標(biāo)。
var mycursor = db.emp.find().noCursorTimeout()
看完上述內(nèi)容,你們對(duì)MongoDB中如何使用游標(biāo)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。