MongoDB實現分頁(兩種方法)

jopen 9年前發布 | 19K 次閱讀 MongoDB NoSQL數據庫

1.插入實驗數據

偷懶用下samus,100條。

for (int i = 0; i < 100; i++)
                {
                    Document doc = new Document();
                    doc["ID"] = i;
                    doc["Msg"] = "value is "+ i;
                    mongoCollection.Insert(doc);
                }

插入成功

 MongoDB實現分頁(兩種方法)

2.分頁

方法一:通過sike()與limit()方法 如下圖,

通過 db.myCollection.find().sort({"ID":1}).skip(10).limit(10)命令,將其根據ID排序后,跳過10,查詢10條,結果為10-19條的數據。

這個類似于EF框架下的Skip()和Take()方法的操作。

 MongoDB實現分頁(兩種方法)

方法二:獲取前一頁的最后一條記錄,查詢之后的指定條記錄 如下圖,

在tmp中存儲前面的10條記錄,latest中存儲前一頁的最后一條記錄(第9條),在接下去的查詢中,通過find后的參數,過濾去之前的記錄,獲取之后的10條記錄。

 MongoDB實現分頁(兩種方法)

3.兩種方法的比較

方法一比較簡單,但skip方法效率較低,在數據量較多的情況下更推薦使用方法二,但可能會占用較多的內存空間。

來自:http://www.cnblogs.com/linhan/p/4248679.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!