2013-08-29 20 views
22

Ben mongodb oldukça yeni ve sipariş mongodb sorgu yapmaya çalışıyorum. Ancak bahar verileri mongodb'nin sıralama yöntemi kullanımdan kaldırıldı. Bu yüzden bu kod bloğunu kullandım. Ama verileri sıralamıyor. Bu uygulama için herhangi bir yararlı yöntem kullanmayı tercih edebilir misiniz?Spring MongoDB sorgu sıralama

+0

Kodunuz, sen – gerrytan

+2

değiller "onun verileri sıralama değil" sen sonuca nasıl ortaya çıkmıştır detaylandırabileceğiniz doğru göründüğünden sayfadaki artan tarih –

cevap

18

Kasayı görmezden bu şekilde sizin tür tanımlayabilirsiniz:

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

teşekkürler, cevabımdan yıllar önce kastettiğim buydu, cevabınızı kabul ediyorum. –

+0

Aslında, virgülle ayrılmış bir listeyi (veya önceden oluşturulmuş bir Listeyi) Sıralama yapıcısına iletebilir ve çoklu sıralama ölçütlerini tanımlayabilirsiniz! – th3morg

+2

En yeni MongoDb ile çalışmıyorum, garip ... Mongo ile istisna ve bunun gibi bir kod var ... java.lang.IllegalArgumentException: Verilen sıralama, kullanıcı adı için bir ihmal davası içeren bir Sipariş içeriyordu! MongoDB şu anda göz ardı etme durumunu desteklemiyor! –

0

Sorunun kodu doğruydu, şimdi görüyorum, 'pdate' alanında bir camelCase sorunu vardı.

3

Verilerinizi ayırmak için toplama kullanabilirsiniz. Birleştirme sorgusu için eşleme ve gruplama ölçütlerini kullanmanız ve alanınızı boşaltmanız gerekir.

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); 
İlgili konular