検索

216.5.2.3. 更新

download PDF

コレクションで 1 つまたは複数のレコードを更新します。正確に 2 つの要素が含まれる IN メッセージボディーとして List<DBObject> が必要です。

  • 要素 1(インデックス 0)pid フィルタークエリー gitops は、通常のクエリーオブジェクトと同じように、影響を受けるオブジェクトを決定します。
  • 要素 2(インデックス 1)pid 更新ルールは、一致したオブジェクトの更新方法。MongoDB の すべての修飾子操作 がサポートされます。
注記

Multiupdates。デフォルトでは、MongoDB は複数のオブジェクトがフィルタークエリーに一致する場合でも 1 つのオブジェクトのみを更新します。MongoDB に対して一致する すべて のレコードを更新するように指示するには、CamelMongoDbMultiUpdate IN メッセージヘッダーを true に設定します。

CamelMongoDbRecordsAffected キーのあるヘッダー(MongoDbConstants.RECORDS_AFFECTED 定数)と更新されたレコード( WriteResult.getN()から派生)を返します。

以下の IN メッセージヘッダーをサポートします。

ヘッダーキークイック定数説明(MongoDB API ドキュメントから抽出)想定されるタイプ

CamelMongoDbMultiUpdate

MongoDbConstants.MULTIUPDATE

If the update to apply all objects matching.See http://www.mongodb.org/display/DOCS/Atomic+Operations

boolean/Boolean

CamelMongoDbUpsert

MongoDbConstants.UPSERT

要素が存在しない場合にデータベースが要素を作成するべきかどうか

boolean/Boolean

たとえば、以下では "scientist" フィールドの値を "Darwin" に設定して、filterField フィールドが true である すべて のレコードを更新します。

// route: from("direct:update").to("mongodb:myDb?database=science&collection=notableScientists&operation=update");
DBObject filterField = new BasicDBObject("filterField", true);
DBObject updateObj = new BasicDBObject("$set", new BasicDBObject("scientist", "Darwin"));
Object result = template.requestBodyAndHeader("direct:update", new Object[] {filterField, updateObj}, MongoDbConstants.MULTIUPDATE, true);
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.