Искам да намеря документ в mongodb таблица, използвайки node 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 за отговор № 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);
Това трябва да свърши работа!