Найти документ по метке времени, используя mongojs

Я хочу найти документ в таблице mongodb, используя узел js. В настоящее время я работаю с плагином mongojs.

Вот с чем у меня проблема:

  1. Я подключаюсь в БД.
  2. Я получаю текущую метку времени
  3. Каждые 10 секунд я хочу напечатать все элементы, добавленные в течение этих 10 секунд.
var timestamp = new Date().getTime();
  console.log('timestamp to compare: ' + timestamp);

setInterval(function() {
  var x = db.collection.find({'create_time' : {$gt : timestamp}}).toArray(function(err, entity) {
      console.log(entity);
  });

  console.log('checking...')
  timestamp = new Date().getTime();
  console.log('timestamp to compare: ' + timestamp);

}, 10000);

Каким-то образом я не получаю результатов. Ниже вы можете увидеть вывод командной строки. http://s11.postimg.org/a8cnffedf/2015_03_11_1521.png

Я буду признателен за любую помощь. Спасибо.

1 ответ

Во-первых, убедитесь, что монго распознает create_time собственность как дата. Самый простой способ сделать это - вставить стандартные экземпляры даты в JavaScript:

db.collection.insert([{
    create_time: new Date(),
    ...
}], callback);

Затем для запроса снова используйте экземпляры даты:

var now = new Date();
var tenMinutesAgo = new Date(now - 10*60*1000);
db.collection.find({
    $gt: tenMinutesAgo
}).toArray(callback);

Это должно делать свое дело!

Другие вопросы по тегам