2015-03-29 2 views
14

У меня есть этот запрос, чтобы получить результаты в месяц. Но я хотел получить результаты сегодняшнего дня.Mongodb найти результаты по дате сегодня

var start = new Date(2010, 11, 1); 
var end = new Date(2010, 11, 30); 

db.posts.find({created_on: {$gte: start, $lt: end}}); 

Каков наилучший способ для этого?

+0

'новый Дата (год, месяц, день [[, час [, минуты, секунды [[, миллисекунды]]]]]);' https: // developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date – Prinzhorn

ответ

36

Ваш объект дата начала следует проводить текущие часы времени даты на 00:00:00.000 (точность миллисекунды) и установить часы на текущую дату в 23:59:59.999:

var start = new Date(); 
start.setHours(0,0,0,0); 

var end = new Date(); 
end.setHours(23,59,59,999); 

Затем передать измененные объекты даты, как обычно в запросе MongoDB оператор:

db.posts.find({created_on: {$gte: start, $lt: end}}); 

Если вы используете momentjs библиотеку, это можно сделать с помощью startOf() и endOf() методы текущего я в секундном съел объект, передавая строку 'day' в качестве аргументов:

var start = moment().startOf('day'); // set to 12:00 am today 
var end = moment().endOf('day'); // set to 23:59 pm today 
Смежные вопросы