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方法效率較低,在數據量較多的情況下更推薦使用方法二,但可能會占用較多的內存空間。
