2014-10-15 3 views
0

Мне нужна помощь, чтобы построить запрос, чтобы вычесть две даты в mongodb.substract two date end return value

У меня есть некоторые документы, как выше:

{"_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)"} 

И Im пытаясь написать запрос

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

Конвейер документ и агрегация при условии, были проблемы синтаксиса, и вам необходимо поместить имя поля для результата $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) }