1
我正在使用一些簡單的表格小部件(前端)來呈現數據和分頁。 因此,在過濾來自mongo數據庫的數據之後,我需要在跳過和限制之前對它們進行計數。我的方式接近效率嗎?分頁和統計文檔的高效方法
var count = _database.GetCollection<BsonDocument>("alarms").Find(filter).Count();
var result = _database.GetCollection<BsonDocument>("alarms").Find(filter).Sort(sort).Limit(limit).Skip(limit * (page - 1)).ToListAsync();
var data = new BsonArray(result.Result);
return new BsonDocument { { "data", data }, { "count", count } };
我需要整個保藏中心統計,所以我可以作出這樣的按鈕「跳轉到第10頁」等你的方法,當我第1頁過濾後取10條記錄產生count = 10 * 0 + 10 = 10而不是27k條記錄。 – lukpep
事實上,如果您希望集合中的全部記錄爲每個可跳轉到的頁面提供鏈接,則需要單獨檢索它們。道歉我誤解了,我給你的代碼是運行的總數和工作,因爲它應該 - 你的限制是10,你的頁面是1和返回的記錄數是10,因此[10 * 0 + 10] = 10,其中就好像你在第2頁一樣,它會是[10 * 1 + 10] = 20。如果你跳到第10頁,它將會是[10 * 9 + 10] = 100。如果你的限制是10,是正確的 – pieperu