2012-12-17 34 views
2

在Spring MVC中排序MongoDB查詢結果的最佳方式是什麼?我已經在XML文件中設置了所有映射,我可以在Service類中調用myrepository.findAll(),並且它工作得很好。MongoDB的Spring MVC - 排序和限制

如何排序這些結果(例如按日期)和/或限制結果(如3等)。在Mongo中,只需要執行db.mycollection.find()。sort({postedAt:-1});或者只是拋出.limit(3)來獲得前3個結果。

在Spring MVC環境中處理這個問題的最佳方法是什麼?

謝謝。

回答

2

如果您myrepository對象是MongoRepository的一個實例,你可以調用的findAll方法具有可分頁對象作爲參數。

Pageable page = new PageRequest(0, 3, new Sort(Direction.DESC, "postedAt")); 
myrepository.findAll(page); 

實際上,這個方法來自PagingAndSortingRepository接口。

+0

謝謝 - 完美的作品! – user1452140

0

我覺得在MongoDB本身排序很好,因爲我們在那裏有很多選項,例如你提到的方式將給出排序列表。您可以定義一個索引,使排序更容易。在春天的環境中展示應該是一件容易的事。另外,如果你有分頁類型的用例,那麼正如你所說的那樣,你可以在mongo層進行限制,並將許多記錄帶入春季環境。