Пытаюсь понять, как это сделать. В основном я хочу сортировать по часам/дням/месяцам/годам моих представлений.
Каждый submission
имеет поле created
, которое содержит объект даты Mongoose в форме "created" : ISODate("2013-03-11T01:49:09.421Z")
. Нужно ли сравнивать с этим в условиях find()?
Вот мой текущий запрос (я оборачиваю его в счетчик для целей разбивки на страницы FWIW, поэтому просто игнорируйте эту часть):
getSubmissionCount({}, function(count) {
// Sort by the range
switch (range) {
case 'today':
range = now.getTime();
case 'week':
range = now.getTime() - 7;
case 'month':
range = now.getTime() - 31; // TODO: make this find the current month and # of days in it
case 'year':
range = now.getTime() - 365;
case 'default':
range = now.getTime();
}
Submission.find({
}).skip(skip)
.sort('score', 'descending')
.sort('created', 'descending')
.limit(limit)
.execFind(function(err, submissions) {
if (err) {
callback(err);
}
if (submissions) {
callback(null, submissions, count);
}
});
});
Может ли кто-нибудь помочь мне понять это? С этим текущим кодом он просто дает мне все материалы независимо от временного диапазона, поэтому я явно что-то не так делаю.