2016-10-09 5 views
-1

У меня есть пользовательский документ и созданыAt, так что я должен делать в состоянии, чтобы получить данные по месяцам?получить данные из документа mongodb по месяцам

createdAt значение выглядеть следующим образом

2016-10-08T16:21:40.935Z 
Account.find({'what to pass here?'}, function(err,response){ 
     if(!err){ 
      console.log(response) 
     } 
    }); 
+0

Что значит «по месяцам»? вам нужны записи с определенной даты? – abdulbarik

+0

do you want записи в определенный диапазон дат или хотите, чтобы они были сгруппированы по месяцам? –

+0

@ A.B. по месяцам, как будто я получаю месяц этого месяца, а затем перехожу в него, но что это должно быть? мне нужно $ gte или $ lt, чтобы указать диапазон? Мне нужны ежемесячные данные. –

ответ

0

Попробуйте

Account.find({ 
    "createdAt": { 
    "$lte": "2016-10-08T16:21:40.935Z" 
    } 
}, function(err, response) { 
    if (!err) { 
    console.log(response) 
    } 
}); 

Вы также можете определить диапазон, чтобы получить конкретные данные

Account.find({ 
    "createdAt": { 
    "$gte": "2016-10-06T16:21:40.935Z", 
    "$lte": "2016-10-08T16:21:40.935Z" 
    } 
}, function(err, response) { 
    if (!err) { 
    console.log(response) 
    } 
}); 
+0

что это? он получит все данные, хм, я думаю, что должен указать диапазон, например $ gte: 1-10-2016, который является первым днем ​​этого месяца. –

+0

Да, вы также можете определить диапазон, чтобы получить записи – abdulbarik

+0

, как получить диапазон в node.js? Я не могу просто жестко записать его. –

2

Попробуйте поставить это условие ...

{"createdAt": {'$gte': new Date('2016-10-01'), '$lt': new Date('2016-10-31')}}

Если вы хотите, чтобы эти две даты генерировались динамически, используя только месяц и год. Поместите приведенный ниже код.

var month = 10; 
var year = 2016; 
var date = new Date(year,month,1); 
var lastDay = new Date(date. getFullYear(), date. getMonth() + 1, 0); 

var condition = {"createdAt": {'$gte': date, '$lte': lastDay)}}; 

Account.find(condition, function(err,response){ 
    if(!err){ 
     console.log(response) 
    } 
}); 
+0

, пользователь не сможет увидеть данные дней, которые не произошли. например, не будет данных для завтра или дней после сегодняшнего дня, зачем использовать lastDay? –

+0

lastDay - последний день этого месяца ... u хотел получить данные между первым и последним днем ​​месяца? –

+0

нет. будут ли у вас данные завтра в отчете о продажах? без прав? –

Смежные вопросы