Найти документ по метке времени, используя mongojs
Я хочу найти документ в таблице mongodb, используя узел js. В настоящее время я работаю с плагином mongojs.
Вот с чем у меня проблема:
- Я подключаюсь в БД.
- Я получаю текущую метку времени
- Каждые 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);
Это должно делать свое дело!