0

データベースとしてmongodbを使用して、Rails 3.2でアプリケーションを開発しています。私はモンゴイド宝石を使用しています。

実行時にデータベースへのすべての変更を追跡したいのですが、その方法がわかりません。
これに関する手がかりはありますか?

4

2 に答える 2

1

現在のアクティビティを監視するだけか、何らかのトランザクション履歴を作成する必要があるかに応じて、データの変更を追跡するために使用できるアプローチがいくつかあります。

労力が少ないものから多いものへの大まかな順序:

1) MongoDB クエリ プロファイラーを有効にする

" 2 "のレベルでクエリ プロファイラーを有効にすると、特定のデータベースに対するすべての操作 (読み取りと書き込み) のプロファイリング データが収集されます。構成オプションでこれを有効にして、mongod起動時にすべてのデータベースのプロファイルのデフォルトを変更することもできます。プロファイル データは、データベースごとに上限のあるコレクションに保存され、クエリの最近のスナップショットのみが含まれます。クエリ プロファイリング ステータスも実行時に変更できるため、必要に応じて簡単に有効または無効にできます。

2)アプリケーションに Mongoid コールバックを追加する

取得しようとしている情報に応じてafter_insertafter_save、などの適切なロジック Mongoid コールバックを追加します。after_upsert

3) MongoDB oplog にテーラブル カーソルを作成する

レプリカ セットの一部として (またはオプションを使用して) MongoDB を実行すると、 (操作ログ)--replSetと呼ばれる上限付きのコレクションが作成されます。テーラブル カーソルを使用して、. データベースに対するすべての変更の詳細であり、MongoDB がレプリケーションに使用するメカニズムです。oplogoplogoplog

于 2013-01-03T05:13:45.727 に答える