游標(biāo)操作 cursor
創(chuàng)新互聯(lián)專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站建設(shè)、乳源網(wǎng)絡(luò)推廣、成都小程序開(kāi)發(fā)、乳源網(wǎng)絡(luò)營(yíng)銷(xiāo)、乳源企業(yè)策劃、乳源品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供乳源建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:chinadenli.net
游標(biāo)是什么\?
通俗的說(shuō),游標(biāo)不是查詢(xún)結(jié)果,而是查詢(xún)的返回資源,或者接口.
通過(guò)這個(gè)接口,你可以逐條讀取.
就像php中的fopen打開(kāi)文件,得到一個(gè)資源一樣, 通過(guò)資源,可以一行一行的讀文件.
聲明游標(biāo):
var cursor = db.collectioName.find(query,projection);
Cursor.hasNext() ,判斷游標(biāo)是否已經(jīng)取到盡頭
Cursor. Next() , 取出游標(biāo)的下1個(gè)單元
用while來(lái)循環(huán)游標(biāo)
var mycursor = db.bar.find({_id:{$lte:5}})
while(mycursor.hasNext()) {
... printjson(mycursor.next());
... }
(注意:調(diào)用next()則游標(biāo)已經(jīng)到了第二個(gè),所以_id為1的不會(huì)輸出。沒(méi)有下一個(gè)了則會(huì)報(bào)錯(cuò))
例:
// 聲明游標(biāo)
var cursor = db.goods.find();
// 循環(huán)游標(biāo)
for(var doc=true;cursor.hasNext();) { printjson(cursor.next());}
也可以簡(jiǎn)寫(xiě):
for(var cursor=db.goods.find(), doc=true;cursor.hasNext();) { printjson(cursor.next());}
游標(biāo)還有一個(gè)迭代函數(shù),允許我們自定義回調(diào)函數(shù)來(lái)逐個(gè)處理每個(gè)單元.
cursor.forEach(回調(diào)函數(shù));
例:
var gettitle = function(obj) {print(obj.goods_name)}
var cursor = db.goods.find();
cursor.forEach(gettitle);
游標(biāo)在分頁(yè)中的應(yīng)用
比如查到10000行,跳過(guò)100頁(yè),取10行.
一般地,我們假設(shè)每頁(yè)N行, 當(dāng)前是page頁(yè)
就需要跳過(guò)前 (page-1)*N 行, 再取N行, 在MySQL中, limit offset,N來(lái)實(shí)現(xiàn)
在mongo中,用skip(), limit()函數(shù)來(lái)實(shí)現(xiàn)的
如 var mycursor = db.bar.find().skip(9995);
則是查詢(xún)結(jié)果中,跳過(guò)前9995行
查詢(xún)第901頁(yè),每頁(yè)10條
則是 var mytcursor = db.bar.find().skip(9000).limit(10);
通過(guò)cursor一次性得到所有數(shù)據(jù), 并返回?cái)?shù)組.
例:
var cursor = db.goods.find();
printjson(cursor.toArray()); //看到所有行
printjson(cursor.toArray()[2]); //看到第2行
注意: 不要隨意使用toArray()
原因: 會(huì)把所有的行立即以對(duì)象形式組織在內(nèi)存里.
可以在取出少數(shù)幾行時(shí),用此功能.
當(dāng)前文章:游標(biāo)
瀏覽路徑:http://chinadenli.net/article8/ppcsop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站改版、品牌網(wǎng)站建設(shè)、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)