【问题标题】:CouchDB is not sorting date correctly?CouchDB 没有正确排序日期?
【发布时间】:2012-05-13 17:03:56
【问题描述】:

这是我的看法:

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

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

"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)" 是最后一个条目。我该如何解决?谢谢!

【问题讨论】:

  • 感谢您的评论,这让我想到存储为秒。

标签: couchdb


【解决方案1】:

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

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

【讨论】:

  • 我尝试存储为秒来对它们进行排序,它通过使用 Date.parse(new Date()); 工作
猜你喜欢
  • 1970-01-01
  • 2010-10-30
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 2019-12-27
  • 2013-11-16
  • 1970-01-01
相关资源
最近更新 更多