216.5.2. 作成/更新操作
216.5.2.1. insert リンクのコピーリンクがクリップボードにコピーされました!
IN メッセージボディーから取得した MongoDB コレクションに新しいオブジェクトを挿入します。型変換は、DBObject または List に変換を試みます。
1 つの挿入と複数の挿入の 2 つのモードがサポートされます。複数の挿入の場合、エンドポイントは、すべてのタイプのオブジェクトのリスト、配列、またはコレクションを想定します。または、- DBObject に変換できます。すべてのオブジェクトは一度に挿入されます。エンドポイントは、入力に応じて呼び出すバックエンド操作(単一または複数の挿入)をインテリジェントな決定します。
例:
from("direct:insert")
.to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
from("direct:insert")
.to("mongodb:myDb?database=flights&collection=tickets&operation=insert");
操作は WriteResult を返します。WriteConcern または invokeGetLastError オプションの値によっては、getLastError() が呼び出されました。書き込み操作の最終的な結果にアクセスするには、WriteResult で getLastError()または を呼び出して getCachedLastError ()CommandResult を取得する必要があります。その後、CommandResult. ok()、CommandResult. )を呼び出すことで結果を確認できます。
getErrorMessage()、および/または CommandResult.getException (
新しいオブジェクトの _id は、コレクションで一意である必要があることに注意してください。値を指定しない場合、MongoDB は自動的に生成します。しかし、指定して一意でない場合は、挿入操作は失敗します(Camel が通知するには、callGetLastError を有効にするか、書き込み結果を待つ WriteConcern を設定する必要があります)。
これはコンポーネントの制限ではありませんが、MongoDB でスループットを向上する方法です。カスタムの _id を使用している場合は、一意のアプリケーションレベル(およびこれが適切なプラクティスである)で確認できることが想定されます。
Camel 2.15 以降、挿入されたレコードの OID は、 CamelMongoOid キー(MongoDbConstants.OID 定数)のメッセージヘッダーに保存されます。保存された値は、単一の挿入の場合は org.bson.types.ObjectId になり ます。複数のレコードが挿入されている場合は java.util.List<org.bson.types.ObjectId > になります。