CouchDB没有正确排序日期?

时间:2012-05-13 08:29:54

标签: couchdb

这是我的观点:

function(doc) {
    if(doc.type=="mail" && doc.user_id == 116 && doc.fid == 81 ){
        emit([doc.time], doc.msg); 
    }
}

我默认存储JS Date(),这里是按降序排序的doc列表。

"Wed May 09 2012 00:16:02 GMT+0800 (SGT)"
"Wed May 09 2012 00:10:45 GMT+0800 (SGT)"
"Wed May 02 2012 00:59:47 GMT+0800 (SGT)"

"Tue May 08 2012 23:55:54 GMT+0800 (SGT)"
"Tue May 08 2012 21:59:42 GMT+0800 (SGT)"

"Tue May 01 2012 23:11:57 GMT+0800 (SGT)"
"Tue May 01 2012 19:00:37 GMT+0800 (SGT)"
"Tue May 01 2012 18:59:55 GMT+0800 (SGT)"

**"Sun May 13 2012 16:02:58 GMT+0800 (SGT)"**
"Sun May 13 2012 16:01:16 GMT+0800 (SGT)"

如您所见,日期未正确排序,"Sun May 13 2012 16:02:58 GMT+0800 (SGT)"是最后一项。我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:2)

认为您在数据库中的日期将被存储为字符串。如果你进入蒲团并查看页面的来源,你应该能够确认这一点。

在过去,我已经看到将日期存储为unix时间戳,以便按整数值进行排序。如果您确实将数据存储在那里作为字符串,那么文档中的这一部分可能会有所帮助:http://wiki.apache.org/couchdb/View_collation#Sorting_by_Dates