2013-05-09 5 views
1

Я пытаюсь выполнить расчет в агрегировании в зависимости от дня текущего месяца. Например, я хочу разделить общее количество транзакций на день месяца для получения транзакций в день.MongoDB Aggregation Framework Date NOW

Проблема в том, что я не могу понять, как получить текущую дату. Я вижу множество примеров, где он жестко закодирован, но то, что мне нужно, больше похоже на функцию MySQL NOW().

Я пытался что-то вроде этого:

> db.statistics.aggregate([{$project: {dayofmonth: {$dayOfMonth: Date()}}}]) 
{ 
     "errmsg" : "exception: can't convert from BSON type String to Date", 
     "code" : 16006, 
     "ok" : 0 
} 

Но что вызывает ошибку, которую вы видите.

Как я могу получить текущий день текущего месяца для использования в калькуляции агрегации?

ответ

4

Вы почти сделали это. Вы должны написать new Date()

db.statistics.aggregate([ 
    {$project: {dayofmonth: {$dayOfMonth: new Date()}}} 
]) 

это даст результаты, как это:

{ 
    "result" : [ 
     { 
      "_id" : "statisctiId", 
      "dayofmonth" : 9 
     } 
} 
+0

ха-ха, спасибо за помощь мне закончить, что выключен. Работает как шарм. –

+0

new Date() возвращает неопределенную синтаксическую ошибку константы; есть что-то, что мне не хватает? – mohakjuneja