2010-03-12 11 views
6

Czy mogę zamówić wynik widoku według wartości, zwrócony przez zredukowany?Jak porządkować widok wynik po zmniejszonej wartości? CouchDB

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

Chcę wynik takiego:

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

    ] 
} 
+0

Czy robisz to w PHP lub JS !? –

+0

Robię w Ruby on Rails przy użyciu klejnotu CouchRest. Ale json jest większy niż ten prosty przykład. –

+1

pokaż, jak wygląda twoja funkcja mapy –

Odpowiedz

0

po prostu chcesz posortować tablicę rows przez właściwość każdego obiektu value? można określić niestandardową metodę porównania dla metody js sort.

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

parametry a i b się być każdy wpis z tablicy rows. metoda zwraca wartość domyślną liczby początkowej niż 0, 0 lub mniejszą od zera. większa niż 0 oznacza, że ​​a należy zamówić przed b, odwrotnie za mniej niż 0, a 0 oznacza, że ​​są równe.

+0

Pytanie brzmi, jak to zrobić w CouchDB. Oczywiście możemy ręcznie sortować wyniki po ich uzyskaniu. Ale co, jeśli zwrócono więcej wyników, niż można na przykład zapisać w pamięci? – lovasoa