麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB快速翻頁的方法

2020-10-29 18:49:39
字體:
來源:轉載
供稿:網友

翻閱數據是MongoDB最常見的操作之一。一個典型的場景是需要在你的用戶界面中顯示你的結果。如果你是批量處理的數據,同樣重要的是要讓你的分頁策略正確,以便你的數據處理可以規模化。

接下來,讓我們通過一個例子來看在MongoDB中翻閱數據的不同方式。在這個例子中,我們有一個CRM數據庫的用戶數據,我們需要通過翻閱瀏覽和在同一時間顯示10個用戶。所以實際上,我們的頁面大小是10。下方是我們的用戶文檔的結構:

{  _id,  name,  company,  state}

方法一:Using skip() 和 limit()

MongoDB本身支持分頁操作使用 skip() 和 limit() 指令。skip(n)指令告訴MongoDB,它應該跳過“n”結果和limit(n)指令指示MongoDB,它應該限制結果長度為“n”結果。通常情況下,你將使用 skip() 和 limit() 指令,但為了說明情況,我們提供了控制臺命令,這樣也能達到相同的結果。同時,為了代碼比較簡潔,限制檢查代碼被排除在外。

//Page 1db.users.find().limit (10)//Page 2db.users.find().skip(10).limit(10)//Page 3db.users.find().skip(20).limit(10)........

一般來說,檢索頁面n,代碼是這樣的:

db.users.find().skip(pagesize*(n-1)).limit(pagesize)
然而,隨著數據的大小增加,這種方法出現嚴重的性能問題。其原因是在每次執行查詢時,建立了完整的結果集,那么服務器必須從收集的開始走到指定的偏移量。當偏移量增加時,這一過程會變得越來越慢。同時,這個過程沒有有效地使用索引。所以,當你有較小的數據集時,典型的“skip() ”和“ limit() ”的方法是有用的。如果您正在使用大數據集,您需要考慮其他方法。

方法二:Using find() 和limit()

以前的方法不能很好擴展其原因是skip() 命令。因此,本節的目標是實現分頁不使用skip()命令。為此,我們將利用在存儲數據中的自然順序,比如時間戳或文檔中存儲的標識。

在這個例子中,我們將使用“_id”存儲每個文檔。“_id”是一個MongoDB 的ObjectID結構,即 12 字節結構包含了時間戳、機械加工、進程標識符、計數器等。總體思路如下 :

檢索當前頁中的最后一個文檔 _id
在下一個頁面檢索文件大于此”_id”

//Page 1db.users.find().limit(pageSize);//Find the id of the last document in this pagelast_id = ...//Page 2users = db.users.find({'_id'> last_id}). limit(10);//Update the last id with the id of the last document in this pagelast_id = ...

這種方法利用內在的規則存在_id字段。也因為“_id”字段是默認的查找操作,它是非常好的性能指標。如果你使用的字段沒有被索引,那么你在操作中會受到困擾,所以確保字段被索引是非常重要的。

同樣,如果你希望數據按照特定順序進行排序分頁的話,那么你還可以使用sort()條款與上述技術。重要的是要確保排序過程是利用索引來獲得最佳性能。您可以使用.explain()后綴來查詢。

users = db.users.find({'_id'> last_id}). sort(..).limit(10);//Update the last id with the id of the last document in this pagelast_id = ...

以上就是MongoDB快速翻頁的方法,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久影库| 国产精品久久久久久模特 | av在线日韩| 欧美黄色片免费看 | 精品一区二区在线观看视频 | 亚洲国产高清一区 | 性欧美极品xxxx欧美一区二区 | 一级在线 | 日本综合久久 | 日本残忍极度灌浣肠视频 | 99国产精品自拍 | 男女羞羞视频在线观看免费 | 久久精品国产99久久6动漫亮点 | 成人午夜淫片a | 91成人影库 | 国产一区二区精品在线观看 | v天堂在线视频 | 欧美日韩亚洲成人 | 美女又黄又www | 国产午夜精品在线 | 7777久久香蕉成人影院 | 99国产精品自拍 | 91精品国产九九九久久久亚洲 | 欧美三级欧美成人高清www | 精品国产一区二区亚洲人成毛片 | 亚洲一区二区三区在线免费观看 | 国产精品探花在线观看 | 精品亚洲一区二区三区 | 免费三级大片 | 免费观看黄色一级视频 | 亚洲性生活视频 | 日本黄色大片免费 | 国产精品久久久久久久久久久久久久久 | 色妹子久久 | 69性欧美高清影院 | 毛片在哪里看 | 一级做受毛片免费大片 | 毛片国产| 狠狠干五月天 | 少妇一级淫片免费放正片 | 91毛片网站 |