3

コレクションがあり、そのコレクションへのすべての挿入に対してアクションを実行したいと思います。問題は、このアクションを実行するコードがJavaにあることです。Oracleでは、JavaまたはCコードをPL / SQLプロシージャにラップしてから、このプロシージャをトリガーで使用することができました。CouchDBでは、ビューを記述できます。MongoDBに最も近いアナログは何ですか? 私が考えることができる最善の可能性は、コードをRESTサーバーにラップし、保存されたjavascriptを使用してコードを操作することです。

この質問はすでに見ましたが、Javaライブラリに依存しているため、ワークフローでjavascriptだけを使用することはできません。また、他の方法がある場合は、mongodbと一緒に新しい重いサービスを実行したくありません。これ。

4

1 に答える 1

3

あなたの要求について言うべきことがいくつかあります:

いくつかのコレクションがあり、そのコレクションへのすべての挿入に対してアクションを実行したいと考えています。

1)ここで求めているのは、実際には「ストアドプロシージャ」ではなく、実際には「データベーストリガー」です。MongoDB は、いかなる種類の「データベース トリガー」機能も提供しません。

これは、MongoDB の一般的な設計目標と一致しています。MongoDB は、従来の DBMS システムのように重くすることなく、非常に高速でスケーラブルなデータ ストアを提供することです。MongoDB の設計目標の詳細については、次のプレゼンテーションを参照してください: http://www.10gen.com/presentations/mongosf2011/whymongodb

2) 挿入ごとに実行したいデータ処理がある場合は、MongoDB 接続のクライアント側で実行する必要があります。これには、必ずアプリケーションにコードを記述する必要があります。

3) 可能であれば、mongod サーバー内で JavaScript を実行しないことをお勧めします。JavaScript はサーバー側で解釈されるため、クエリの速度が影響を受けます。さらに、mongod サーバーで実行されるすべての JavaScript はシングルスレッドであるため、JavaScript 実行の同時実行はありません。

あなたにとってより良い答えがあればいいのにと思います。

于 2012-06-06T18:09:35.980 に答える