Datetime CouchDB日期函数

Datetime CouchDB日期函数,datetime,nosql,couchdb,Datetime,Nosql,Couchdb,我们正在将一个相当大的PHP/MySQL项目转换为Angular/Node.js/CouchDB。我现在遇到的主要问题是,我们的MySQL查询相当复杂,使用了很多日期函数(如date_DIFF、date_FORMAT等),我不知道如何将它们转换为这种新的体系结构 大多数开发人员如何在CouchDB中处理这些类型的函数?他们是否只是从数据库中提取原始数据,并将所有计算留给控制器/前端 查询示例: SELECT DATE_DIFF(NOW(),table.datefrom) as how_long,

我们正在将一个相当大的PHP/MySQL项目转换为Angular/Node.js/CouchDB。我现在遇到的主要问题是,我们的MySQL查询相当复杂,使用了很多日期函数(如date_DIFF、date_FORMAT等),我不知道如何将它们转换为这种新的体系结构

大多数开发人员如何在CouchDB中处理这些类型的函数?他们是否只是从数据库中提取原始数据,并将所有计算留给控制器/前端

查询示例:

SELECT DATE_DIFF(NOW(),table.datefrom) as how_long, DATE_FORMAT(table.datefrom,'%m/%d/%Y') as formatted_date FROM table ORDER BY datefrom
CouchDB将如何处理该查询?

日期时间在CouchDB中不是“本机”类型。但是,您有几个好的选择,您可以根据情况进行选择

您可以使用“时间戳”数值。(以本机毫秒为单位,或者根据需要转换为秒)您可以使用
(new Date()).valueOf()获取“now”的时间戳

您还可以将datetimes的各个部分分解为一个数组。(
[年、月、日、时、分、秒]
)这将使您能够使用分组“深入”到越来越具体的时间范围,以及基于日期的各个部分进行查询

如果您希望从测试的库中进行日期操作和格式化,您可以引入第三方模块,例如,可以在视图/显示/列表等中使用


我可以从上面的示例查询中看出一个潜在问题。通过
DATE\u DIFF(NOW(),…)
,您基本上得到了一个“秒自”。在视图函数中,您将无法使用像
NOW()
这样的“瞬态”值,因为视图需要不受外部变量/条件的影响。但是,这可以通过添加一个函数来解决,该函数可以获取您的视图结果,并将输出转换为“相对”值,如您试图实现的值,还可以接收querystring参数,以进一步为视图添加动态性。

感谢您提供的所有信息。正是我需要的。