Docs Menu
Docs Home
/
MongoDB Cluster-to-Cluster Sync
/ /

ドキュメントのフィルタリング

項目一覧

  • 構文
  • パラメーター フィールド
  • 動作
  • 制限
  • 検証
  • ドキュメント フィルターで mongosyncを開始する
  • 詳細

重要

Cluster-to-Cluster Sync betaプログラム

この機能はmongosyncbeta {0 でのみ使用できます。詳しくは、「 Cluster-to-Cluster Sync betaプログラム 」を参照してください。

mongosync beta 1.8 以降では、特定の条件に基づいてドキュメントを選択的に移行できます。 宛先クラスターに移行するドキュメントをさらに制限するには、ドキュメント フィルタリングと名前空間フィルタリングを組み合わせることができます。

ドキュメントフィルタリングを使用するには、ソースクラスターと宛先クラスターの両方でサポートされている MongoDB バージョンを使用する必要があります。

start API エンドポイントは、次の構文を持つ任意のdocumentFilterパラメータを受け入れます。

"documentFilter" : {
"field" : <field-name>,
"matchValues" : [<field-values>]
}
フィールド
タイプ
必要性
説明
field
文字列
必須
フィールド名
matchValues
配列
必須
移行するためにドキュメントが持つ必要があるフィールド値。
  • field 名前にドット( . )またはドル記号( $ )を含めることはできません。

  • matchValues 配列項目は、次の BSON types になります。

    • すべての数値型

    • バイナリ

    • ブール値

    • 日時

    • ObjectID

    • 文字列

  • また、移行中にフィルターにドキュメントを含めたり、フィルターからドキュメントを移動したりすることはできません。

  • ドキュメントフィルターに string と、デフォルト以外の照合順序を持つ移行済みコレクションが少なくとも 1 つ含まれている場合、 mongosyncはすぐに失敗します。

  • プログレスAPI エンドポイントを呼び出し、 ドキュメント フィルターを使用すると、 estimatedTotalBytesレスポンス フィールドにはnullが返されます。

  • 宛先クラスターには、フィルターに一致する既存のデータが含まれてはなりません。

  • ドキュメント フィルターを指定して、 reversibleフラグをtrueに設定することはできません。

ドキュメント フィルタリングは 埋め込み検証子 と互換性がありません。検証とドキュメント フィルタリングの両方を有効にする場合、 /start コマンドはエラーを返します。

詳細については、「データ転送を確認する 」を参照してください。

注意

無効なドキュメント フィルター処理

開始リクエストで無効なドキュメントフィルターを指定した場合、mongosync はクラッシュしません。代わりに、開始リクエストは失敗します。 mongosync を再起動する必要なく、有効なドキュメントフィルターを使用して開始リクエストを再発行できます。

次の例では、 cluster0cluster1の間で同期ジョブを開始しています。 ソースクラスターはcluster0で、宛先クラスターはcluster1です。

cluster0 には、 restaurantsattractionslodgingコレクションが含まれるtravelデータベースが含まれています。 restaurantsattractionslodgingコレクションのドキュメントにはすべてcityフィールドが含まれています。

この例のdocumentFilterドキュメントは、 cityフィールドがLos AngelesNew York 、またはSan Franciscoのいずれかであるドキュメントをフィルタリングします。

"documentFilter" : {
field : "city",
matchValues: [ "Los Angeles", "New York", "San Francisco" ]
}

戻る

多対 1 の移行