MongoDB實現分頁(兩種方法)


1.插入實驗數據

偷懶用下samus,100條。

1                 for (int i = 0; i < 100; i++)
2                 {
3                     Document doc = new Document();
4                     doc["ID"] = i;
5                     doc["Msg"] = "value is "+ i;
6                     mongoCollection.Insert(doc);
7                 }

插入成功

 

2.分頁

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

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

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

 

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

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

 

3.兩種方法的比較

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM