2010-03-12 39 views
6

Tôi có thể đặt kết quả của một lần xem theo giá trị, được trả về bằng cách giảm?Cách sắp xếp thứ tự kết quả theo giá trị giảm? CouchDB

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

Tôi muốn một kết quả như thế này:

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

    ] 
} 
+0

Bạn đang làm điều này trong PHP hay JS !? –

+0

Tôi đang làm trong Ruby on Rails sử dụng đá quý CouchRest. Nhưng json lớn hơn ví dụ đơn giản này. –

+1

hiển thị chức năng Bản đồ của bạn trông như thế nào –

Trả lời

0

bạn chỉ muốn sắp xếp các rows mảng bởi value tài sản của từng đối tượng? bạn có thể chỉ định phương pháp so sánh tùy chỉnh cho phương thức js sort.

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

thông số ab mỗi sẽ là một entry từ mảng rows. phương thức trả về giá trị int lớn hơn 0, 0 hoặc nhỏ hơn 0. lớn hơn 0 có nghĩa là a phải được đặt hàng trước b, đối diện nhỏ hơn 0 và 0 có nghĩa là chúng bằng nhau.

+0

Câu hỏi đặt ra là làm thế nào để thực hiện điều đó trên CouchDB. Tất nhiên chúng ta có thể tự sắp xếp các kết quả sau khi nhận được chúng. Nhưng nếu có nhiều kết quả trả về hơn có thể được lưu trữ trong bộ nhớ, chẳng hạn? – lovasoa

Các vấn đề liên quan