91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

游標

發布時間:2020-03-08 12:22:27 來源:網絡 閱讀:288 作者:梁十八 欄目:MongoDB數據庫

游標操作 cursor

游標是什么\?
通俗的說,游標不是查詢結果,而是查詢的返回資源,或者接口.
通過這個接口,你可以逐條讀取.
就像php中的fopen打開文件,得到一個資源一樣, 通過資源,可以一行一行的讀文件.

聲明游標:
var cursor = db.collectioName.find(query,projection);
Cursor.hasNext() ,判斷游標是否已經取到盡頭
Cursor. Next() , 取出游標的下1個單元

用while來循環游標

var mycursor = db.bar.find({_id:{$lte:5}})
while(mycursor.hasNext()) {
... printjson(mycursor.next());
... }
游標

(注意:調用next()則游標已經到了第二個,所以_id為1的不會輸出。沒有下一個了則會報錯)

游標

例:
// 聲明游標
var cursor = db.goods.find();
// 循環游標
for(var doc=true;cursor.hasNext();) { printjson(cursor.next());}

也可以簡寫:
for(var cursor=db.goods.find(), doc=true;cursor.hasNext();) { printjson(cursor.next());}

游標還有一個迭代函數,允許我們自定義回調函數來逐個處理每個單元.
cursor.forEach(回調函數);
例:
var gettitle = function(obj) {print(obj.goods_name)}
var cursor = db.goods.find();
cursor.forEach(gettitle);

游標

游標在分頁中的應用
比如查到10000行,跳過100頁,取10行.
一般地,我們假設每頁N行, 當前是page頁
就需要跳過前 (page-1)*N 行, 再取N行, 在mysql中, limit offset,N來實現
在mongo中,用skip(), limit()函數來實現的

如 var mycursor = db.bar.find().skip(9995);
則是查詢結果中,跳過前9995行

游標

查詢第901頁,每頁10條
則是 var mytcursor = db.bar.find().skip(9000).limit(10);

游標

通過cursor一次性得到所有數據, 并返回數組.
例:

var cursor = db.goods.find();
printjson(cursor.toArray()); //看到所有行
printjson(cursor.toArray()[2]); //看到第2行

注意: 不要隨意使用toArray()
原因: 會把所有的行立即以對象形式組織在內存里.
可以在取出少數幾行時,用此功能.

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

二连浩特市| 莱阳市| 伊宁县| 南丹县| 三门县| 故城县| 建平县| 遂川县| 宿松县| 德化县| 浮山县| 阳高县| 天等县| 北票市| 彭州市| 库伦旗| 孟州市| 得荣县| 霍山县| 罗田县| 嘉祥县| 绿春县| 喀喇沁旗| 临澧县| 色达县| 两当县| 许昌市| 台北市| 迁安市| 肇东市| 洛隆县| 八宿县| 渝中区| 比如县| 台前县| 长寿区| 河南省| 亳州市| 镇赉县| 天镇县| 利川市|