2015-12-14 4 views
2

У меня есть нагрузка на даты в коллекции в Метеор. На данный момент я просто возвращаю их с лимитом в 10, но мне нужно вернуть их до последней недели (7 дней). Моя проблема заключается в том, что в каждый день не одинаковое количество элементов, поэтому я не могу просто взять один и тот же номер за каждый день. Я использую Метеор с моментом js. Вот пример некоторых данных и код, я использую, чтобы вернуть его:MomentJs возвращает только даты на прошлой неделе в Метеор

{ 
 
    _id: "a68JFTrCFabQe5qQ2", 
 
    createdAt: Tue Dec 15 2015 09:32:36 GMT+1100 (AUS Eastern Summer Time), 
 
    user: "7uXThqXFkjkMpDrcb" 
 
} 
 

 
//This data gets to the client with the following: 
 

 
getDay: function(day){ 
 
    return Time.find({today: day}, {limit: 10}).fetch(); 
 
} 
 

 
//Instead of limiting it by 10 I need items from the last 7 days only.

Спасибо!

ответ

1

Вам необходимо найти записи с помощью createAt, которая больше, чем сегодняшняя дата - 7 дней. Предполагая, что вы используете объект нормального Javascript Date() при создании этих объектов в коллекции, можно использовать следующий код, чтобы получить все записи в течение последней недели:

Time.find({ 
    createdAt: { 
     $gte: new moment().subtract(1, 'week').toDate(), 
     $lte: new Date() 
    } 
}); 

Это если вы используете момент. Если вы этого не сделаете, просто используйте обычную Date() и вычтите неделю и поместите его в поле $ gt.

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