MongoDB найти созданные результаты по дате сегодня

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

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

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

Как лучше всего это сделать?


person Rex Adrivan    schedule 29.03.2015    source источник
comment
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]); developer.mozilla.org/en-US/docs /Интернет/JavaScript/Справочник/   -  person Prinzhorn    schedule 29.03.2015


Ответы (1)


Ваш объект даты начала должен содержать часы текущей даты с точностью 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
person chridam    schedule 29.03.2015