問題タブ [capped-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - MongoDB で 64 ビット長の自動インクリメント カウンターを使用する方法
MongoDB を使用してロガー データベースを実装しています。上限のあるコレクションには、ネットワーク全体の複数のソースから収集されたログ メッセージが含まれます。後で$lte/$gte
クエリを実行したいので、単調関数として成長する が必要です。_id
_id
それを達成するために、この記事http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/で説明されている自動インクリメントカウンターを実装しました
私のコードは次のようになります。
それは完全に正常に動作しますが、デフォルトではMongoDBで使用される数値フィールドは実際には浮動小数点数であることを読みました. 問題は、データベースのログ エントリのコレクションが制限されており、多数のエントリが存在することです。さらに、これは上限のあるコレクションであるため、古いエントリは上書きされますが、カウンターは増え続けます。フロートとしてカウンターを使用すると、システムが数年後に機能し続けることを保証できません。私の質問は、この特定のケースで MongoDB に 64 ビット カウンターを使用させるにはどうすればよいかということです。
いくつかのコード例を提供してください。
node.js - Mongoose:express.jsアプリでキャップされたコレクションからデータを取得する方法は?
ロギング機能として使用して、MongoDB キャップ付きコレクションをリッスンしたいと思います。
ノード、express.js、mongo (mongoose) を使用します。
これは私が今までに持ってきた(簡略化された)コードです:
私の問題は、 myRoutingMethod() が呼び出される前に、次のようになることです:
だから、私は決して得ません
stream()
上限のあるLog
コレクションとの統合について、おそらく何かが欠けていexpress.js
ます...
どんな手掛かり?
javascript - Mongodb:キャップされたコレクションで「tail -f」ビューを作成する方法は?
capped
Mongo データベースのコレクション (ログ テーブルとして使用される) に一種の「ダッシュボード」を作成したいと考えています。これは私がコレクションを作成する方法です:
collection.find()
オプションtailable:true
、awaitdata:true
、およびnumberOfRetries:-1
(無限の再試行)を使用して、 を実行します。
私を困惑させているのは、find()。each()ループが新しいデータ(メッセージ)を待つことを期待していることです...代わりに(数秒後)エラーになります(No more documents in tailed cursor
... :-()
これは私が取り組んでいるコードです:
何が恋しいですか?
更新:
今まで決定的な答えを受け取ってMongoDb tailable collections
いないので、ゴールデンタイムの準備ができていないと推測します... :-(((
悲しいことに、より古典的で堅牢な fs ロギング ソリューションをあきらめています...
mongodb - phalcon Collection モデルで MongoDb capped コレクションを使用することは可能ですか?
ログに mongoDb コレクションを使用しているため、MongoDb キャップ付きコレクションを使用したいと考えています。
それを行うためにphaclon Collectionを使用できますか、それともログモデル内でログローテーションをコーディングする必要がありますか?
mongodb - MongoDB の上限付きコレクションにフィールドを追加する
いくつかのフィールドでログ データを保存するために、キャップ付きコレクションを作成しました。いくつかの要件により、このコレクションに「createAt」という名前の追加フィールドを追加したいと考えました。
これは以下のエラーをスローしています:
キャップされたコレクションにいくつかのフィールドを追加するにはどうすればよいですか?
mongodb - MongoDbのキャップ付きコレクションをキャップなしコレクションに変換するには?
特定のビジネス要件により、MongoDB の上限付きコレクションにデータを保存していましたが、完全な要件が変更されたため、そのコレクション内のすべてのレコードを保存したくありません。
「convertToCapped」コマンドは見つかりましたが、その逆の操作を実行するコマンドは見つかりませんでした。
キャップなしのコレクションに戻すにはどうすればよいですか?
mongodb - TTL を使用した mongodb キャップ付きコレクション
ユーザーが他のユーザーとチャットできるアプリケーションを持っていますが、
会話ごとに X 件のメッセージのみを保存したいのですが、各メッセージは作成から 1 か月後に削除する必要があります (TTL)。
MongoDB は TTL を使用した上限付きコレクションをサポートしていますか?
ドキュメントには次のように記載されています: https://docs.mongodb.org/manual/core/capped-collections/#automatically-remove-data-after-a-specified-period-of-time
私はそうは思わないので、それを達成するための代替手段はありますか?
ありがとう
mongodb - キャップ付きコレクションと _id 自動インデックス
デフォルトでキャップ付きコレクションの _id フィールドに自動インデックスを設定する理由は何ですか? ドキュメントには次のことが記載されています。
このインデックス作成のオーバーヘッドがなければ、上限のあるコレクションはより高い挿入スループットをサポートできます。
上限付きコレクションの挿入パフォーマンスに関する投稿があり、私自身のテストでは、挿入の場合、インデックスなしの上限付きコレクションが最速のオプションであり、次に通常のコレクションが行われ、最も遅いオプションはインデックス付きの上限付きコレクションであることが示されています。バージョン 2.2 で _id フィールドと共に自動インデックスが追加されたのはなぜでしょうか? 特定のシナリオで通常のコレクションに代わる高速な代替手段として上限付きコレクションが提案されているのに、パフォーマンスに問題があった場合はどうすればよいでしょうか?