2013-08-29 30 views
22

Tôi khá mới trên mongodb, và trong khi tôi đang cố gắng thực hiện truy vấn mongodb đã ra lệnh. Nhưng phương thức sắp xếp dữ liệu của mùa xuân mongodb không được chấp nhận. Vì vậy, tôi đã sử dụng org.springframework.data.domain.SortTruy vấn MongoDB mùa xuân sắp xếp

Query query = new Query(); 
query.with(new Sort(Sort.Direction.ASC,"pdate")); 
return mongoTemplate.find(query, Product.class); 

Tôi đã sử dụng khối mã này. Nhưng nó không phân loại dữ liệu. Vì vậy, bạn có thể thích sử dụng bất kỳ phương pháp hữu ích cho thực hành này?

+0

Mã của bạn có vẻ đúng, bạn có thể xây dựng làm thế nào bạn đi vào kết luận "của nó không sắp xếp dữ liệu" – gerrytan

+2

họ không ngày đặt hàng tăng dần trên trang –

Trả lời

18

Bạn có thể xác định loại của bạn theo cách này để bỏ qua trường hợp:

new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase() 
+0

cảm ơn, đó là những gì tôi có ý nghĩa năm trước trong câu trả lời của tôi, tôi chấp nhận câu trả lời của bạn. –

+0

Bạn thực sự có thể chuyển danh sách được phân cách bằng dấu phẩy (hoặc danh sách được dựng sẵn) cho hàm tạo Phân loại và xác định nhiều tiêu chí đặt hàng! – th3morg

+2

Nó không hoạt động với tôi, với MongoDb mới lạ, lạ ... Tôi đã có ngoại lệ với Mongo và mã như thế ... java.lang.IllegalArgumentException: Được sắp xếp có chứa một thứ tự cho tên người dùng với trường hợp bỏ qua! MongoDB không hỗ trợ sắp xếp trường hợp bỏ qua hiện tại! –

0

Mã câu hỏi của tôi là đúng, bây giờ tôi thấy, có vấn đề camelCase trên trường 'pdate'.

3

Bạn có thể sử dụng tổng hợp để sắp xếp dữ liệu của mình. Bạn phải sử dụng tiêu chí kết hợp và nhóm cho truy vấn tổng hợp và giải phóng trường của bạn.

AggregationOperation match = Aggregation.match(matching criteria); 
AggregationOperation group = Aggregation.group("fieldname"); 
AggregationOperation sort = Aggregation.sort(Sort.Direction.ASC, "fieldname"); 
Aggregation aggregation = Aggregation.newAggregation(Aggregation.unwind("fieldname"),match,group,sort); 
Các vấn đề liên quan