2016-01-04 3 views

ответ

1

По умолчанию нет никакого способа.

Документы не связаны с датой создания, если вы явно не сохранили ее в MongoDB.

Других слов вашей Mongoose схема должна иметь что-то вроде created поля:

const blogSchema = new Schema({ 
    created: {type: Date, default: Date.now} 
}); 

Затем поиска соответствующих Документов

const now = new Date(); 
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); 
doc.find({created: {$gte: today}}).exec(callback); 
+1

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

+0

'doc.find ({created: {$ gte: new Date (now.getFullYear(), now.getMonth(), now.getDate())}}). Exec (...)' http://mongoosejs.com/docs/queries.html – krl

+0

Ошибка: теперь не определена. –

1

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

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

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

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

Затем передать измененные объекты даты, как обычно в вашей агрегации трубопровода MongoDB в $match оператора:

var pipeline = [ 
    { 
     "$match": { 
      "createdAt": { "$gte": start, "$lt": end } 
     } 
    }, 
    { 
     "$group": { 
      "_id": null, 
      "count": { "$sum": 1 } 
     } 
    } 
]; 

Model.aggregate(pipeline, function (err, result){ 
    if (err) throw new Error(); 
    console.log(JSON.stringify(result)); 
}); 

Если вы используете 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 
Смежные вопросы