2015-05-08 2 views
0

У меня есть коллекция тем. Каждая тема может быть оценена. Я денормализовал данные, так что коллекция тем хранит время последнего рейтинга в «lastRated».meteor js: как запросить сообщения, которые недавно были оценены?

Как запросить все темы, которые не были оценены за последние 6 часов?

Мой запрос прямо сейчас выглядит следующим образом:

var hoursAgo = 1000 * 60 * 60 * 24; 
var beHereNow = new Date() - hoursAgo; 
Topics.find({ 'lastRating' : {$lte: beHereNow} }); 

Однако, когда я запускаю это в консоли, я извлечение всех темы.

ответ

2

Попробуйте установить часы так:

var date = new Date(); 
var beHereNow = new Date(); 

beHereNow.setHours(date.getHours() - 6); 
console.log(beHereNow); // Fri May 08 2015 10:09:32 GMT+0100 (GMT Daylight Time) 

Topics.find({ 'lastRating' : {$lte: beHereNow} }); 

Или еще лучше, вы можете использовать momentjs библиотеку, особенно subtract() метод:

var beHereNow = moment().subtract(6, 'hours'); 
Topics.find({ 'lastRating' : {$lte: beHereNow} }); 
+1

Хороший вызов на предлагая momentjs! Большая библиотека. –

+0

@TimC Вы можете сказать это снова! – chridam