capped
我想在我的 Mongo 数据库上的集合(用作日志表)上创建一种“仪表板” 。这就是我创建集合的方式:
db.createCollection( "messages", { capped: true, size: 100000 } );
我collection.find()
用选项tailable:true
、、awaitdata:true
和numberOfRetries:-1
(无限重试)做一个 , 。
令我困惑的是,我希望 find().each() 循环等待新数据(消息)......相反(几秒钟后)它会出错(带有No more documents in tailed cursor
...... :-()
这是我正在使用的代码:
var mongo = require('mongodb');
mongo.MongoClient.connect('mongodb://127.0.0.1/myDb', function (err, db) {
db.collection('messages', function(err, collection) {
if (err) {
return console.error('error in status collection:', err);
}
collection.find( // open tailable cursor
{},
{ tailable: true, awaitdata: true, numberOfRetries: -1 }
).each(function(err, doc) {
if (err) {
if (err.message === 'No more documents in tailed cursor') {
console.log('finished!');
} else {
console.error('error in messages collection:', err);
}
} else {
if (doc) {
console.log('message:', doc.message);
}
}
})
});
});
我想念什么?
更新:
直到现在还没有收到任何确凿的答案,我推断MongoDb tailable collections
还没有准备好迎接黄金时段...... :-(((
可悲的是放弃了更经典和更强大的 fs 日志记录解决方案......