2010-03-12 16 views
6

Bir görünümün sonucunu azaltılmış olarak döndürülen değerle sipariş edebilir miyim? Görüntüleme siparişi ne kadar düşük bir değere ulaştı? CouchDB

{ 
    "rows": [ 
     {"key":"bob","value":2}, 
     {"key":"john","value":3}, 
     {"key":"zztop","value":1} 
    ] 
} 

Böyle bir sonuç istiyorum:

{ 
    "rows": [ 
     {"key":"zztop","value":1}, 
     {"key":"bob","value":2}, 
     {"key":"john","value":3} 

    ] 
} 
+0

Bunu PHP veya JS'de yapıyor musunuz? –

+0

CouchRest gem kullanarak Ruby on Rails yapıyorum. Ama json bu basit örnekten daha büyük. –

+1

Harita fonksiyonunuzun neye benzediğini göster –

cevap

0
sadece her bir nesnenin value özelliğiyle rows diziyi sıralamak istediğiniz

? js sort yöntemi için özel bir karşılaştırma yöntemi belirtebilirsiniz.

myResult.rows.sort(function (a, b) { 
    return parseInt(a.value,10) - parseInt(b.value,10); 
}); 

parametreleri a ve b her rows diziden bir giriş olur. Metot, 0, 0 veya sıfırdan daha düşük olan bir int rezonans değeri verir. 0'dan büyük a, b'dan önce sipariş edilmelidir, 0'dan daha düşük bir tam tersi ve 0 eşittir demektir.

+0

Soru, CouchDB'de bunun nasıl yapılacağıdır. Elbette sonuçları aldıktan sonra el ile sıralayabiliriz. Ancak, örneğin belleğe kaydedilenden daha fazla sonuç döndürülürse ne olur? – lovasoa