2011-01-23 32 views
7

Tôi có một đối tượng JSON lồng nhau cho phím tình trạng dưới đây:Ngày Sorting trong CouchDB Lần

{
"2011-01-19 09:41:00 AM": "Prototyping status application",
"2011-01-20 09:41:00 AM": "Playing with CouchDB"
}

Đó là một ứng dụng nhỏ, nơi người dùng có thể nhập/tình trạng của mình. Tôi muốn có được trạng thái gần đây nhất từ ​​nó. Cách tiếp cận này có tốt cho các ứng dụng như vậy hay tôi phải có khóa xác định thứ tự sắp xếp?

Cách tốt nhất để có được ngày gần đây nhất là gì?

Cảm ơn

Trả lời

14

Sử dụng view collation và phát ra khóa phức.

Nếu trước tiên bạn muốn sắp xếp theo người dùng, thì theo thời gian, hãy sử dụng khóa này làm khóa. Nếu bạn chỉ muốn sắp xếp theo thời gian, hãy bỏ qua tên người dùng là khóa.

Nếu bạn đang sử dụng giá trị gia-phong cách:

emit([Date.parse(doc.created_at).getTime(), doc.username], doc); 

Nếu bạn sử dụng một định dạng ngày đó đã là sắp xếp được thứ tự từ điển:

emit([doc.created_at, doc.username], doc); 
+0

Cảm ơn rất nhiều, chỉ là những gì tôi muốn. – saint

+0

Bạn có nghĩ rằng đó là một thiết kế tốt để giữ trạng thái như thế này? – saint

+0

Tôi có thể muốn thêm tài liệu mới cho từng trạng thái. Điều này sẽ dẫn đến nhiều tài liệu hơn, nhưng có xu hướng ngăn chặn các xung đột và cho phép một thiết kế scalabale với trạng thái 'cuối cùng phù hợp'. Mỗi tài liệu ít nhất phải chứa thông báo trạng thái, người dùng, thời gian và dữ liệu meta nội bộ mà bạn có thể yêu cầu. –