簡體   English   中英

我們如何使用mongoTemplate為Mongodb Collection實現分頁

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM