在CouchDB视图中排序日期

时间:2011-01-23 09:07:40

标签: nosql couchdb mapreduce

我有一个嵌套的JSON对象,用于下面的状态键:

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

这是一个小应用程序,用户可以输入他/她的状态。我希望从中获得最新状态。这种方法对于这样的应用程序是否有用,或者我必须有一个定义排序顺序的键?

获取最近日期的最佳方式是什么?

由于

1 个答案:

答案 0 :(得分:15)

使用view collation并发出复杂的密钥。

如果您首先要按用户排序,则按时间将其用作键。如果您只想按时间排序,请将用户名省略为密钥。

如果您使用日期样式值:

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

如果使用已按字典顺序排序的日期格式:

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