![](/img/trans.png)
[英]Can we do datatables server side pagination using mongodb and java?
[英]How can we implement Pagination for Mongodb Collection using mongoTemplate
我是mongoDb中的菜鳥,我需要為任何特定的集合實現Pagination,例如說
我有一個Collection Foo,我有一個Fucntion,它返回Foo集合中的所有記錄
public List<Foo> getFoo(){
}
但我需要通過實現分頁從Foo中獲取記錄如何通過使用mongoTemplate Spring數據mongodb實現這一目標?
對於一般分頁,您可以在Query對象上使用.skip()
和.limit()
修飾符,您可以將這些修飾符作為參數傳遞給您的方法:
Query query = new Query();
query.addCriteria(Criteria.where("a").is("b"));
query.skip(10);
query.limit(10);
List<Foo> results = mongoOperation.find(query, Foo);
使用.skip()
結果,並且.limit()
是要返回的頁面大小。
因此從MongoTemplate派生一個MongoOperations實例,並從那里使用標准的.find()
操作。
跳過和限制不是最高性能的選項,盡可能將最后看到的值存儲在像_id
這樣的自然索引上,並使用范圍查詢來避免“跳過”1000的結果。
Query query = new Query();
query.addCriteria(Criteria.where("_id").gt(lastSeen));
query.limit(10);
您可以為正在使用的查詢提供跳過和限制,這應該有助於進行分頁。 看一下MongoTemplate類中的方法find 。
您的方法應如下所示:
public List<Foo> getFoo(int pageNumber, int pageSize) {...}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.