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 ロギング ソリューションをあきらめています...