减去两个日期和返回值

时间:2014-10-15 17:45:20

标签: mongodb mongoid

我需要帮助来构建一个查询来减去mongodb中的两个日期。

我有一些如上所述的文件:

{"_id" : "32472034809", "center": "102030", dateArq : 141010, inDate : "ISODate("2014-06-06T02:57:19.000-03:00)", biDate : ISODate("2014-06-07T02:57:19.000-03:00)"}

我试图写一个查询

db.teste.aggregation([{$match : {dateArq : 141010}},{$project : {$subtract : ["$biDate" "$inDate"]}}])

事实上,我想这样做:对于每个_id,我想得到biDate - inDate,因为我需要看看dateArq是否保持在一个常量行中。

在Oracle中我做了

select dateArq, (biDate - inDate) diff from teste where dateArq = 141010

寻求帮助

1 个答案:

答案 0 :(得分:1)

提供的文档和聚合管道存在语法问题,您需要为$subtract的结果添加字段名称,否则您的管道适用于我:

> db.test.findOne()
{
    "_id" : "32472034809",
    "center" : "102030",
    "dateArq" : 141010,
    "inDate" : ISODate("2014-06-06T05:57:19Z"),
    "biDate" : ISODate("2014-06-07T05:57:19Z")
}
> db.test.findOnedb.test.aggregate([
    { "$match" : { "dateArq" : 141010 } }, 
    { "$project" : { "dateDiff" : { "$subtract" : ["$biDate", "$inDate"] } } }
])
{ "_id" : "32472034809", "dateDiff" : NumberLong(86400000) }