バージョン 1.6 の新機能.
1.6以降、start
APIでは、フィルタリング同期で使用される パラメータと パラメータのフィルタを構成するために、正規表現includeNamespaces
excludeNamespaces
を使用できるようになりました。
構文
フィルタリングされた同期を使用するためにmongosync
のデータベースとコレクションを照合するには、正規表現を使用できます。
{ "databaseRegex": { "pattern": "<string>", "options": "<string>" }, "collectionsRegex": { "pattern": "<string>", "options": "<string>" } }
フィルターに渡す正規式パターンは、 MongoDBサーバーでサポートされている regex
構文に従う必要があります。
フィルター ドキュメント内の正規表現では、regex
ガイドにリストされている options
が使用されます。options
は、連結されたオプションの string です。例、i
と s
オプションを指定するには、"si"
を options
に渡します。連結されるオプションの順序は関係ありません。
フィルター ドキュメント内の正規表現では、次のフィールドが使用されます。
オプション | タイプ | 説明 |
---|---|---|
| ドキュメント | フィルターで一致させるコレクションを指定します。 |
| string | 一致で使用する正規表現オプション。 |
| string | 一致する正規表現パターン。 |
| ドキュメント | フィルターを一致させるデータベースを指定します。 |
| string | 一致で使用する正規表現オプション。 |
| string | 一致する正規表現パターン。 |
これらのオプションは、 includeNamespaces
とexcludeNamespaces
パラメーターの両方で使用できます。
ユースケース
正規表現を使用すると、複数のデータベースやコレクションを単一のパターンで一致させることができます。 複数の同じ名前のデータベースまたはコレクションを照合する場合は、個々のデータベースまたはコレクションのグループに対して一連のフィルターを作成するよりも正規表現を使用した方が簡単な場合があります。
詳細
正規表現オプションの例
databaseRegex
と collectionsRegex
はそれぞれ options
フィールドをサポートしています。このフィールドを使用して正規式オプションを構成できます。内部的には、mongosync
はフィルターとオプションを $regex
演算子に渡します。その演算子が使用できるオプションは、Filted Sync で使用できます。
例、このフィルターは、accounts_
string で始まる sales
データベース内のコレクションと一致します。このフィルターでは、複数行の値を持つ string で各行の先頭または末尾の文字を照合するための オプション m
と、ドット記号が改行文字 を含む すべての文字と一致するようにするオプション s
も指定します。
"includeNamespaces": [ { "database": "sales", "collectionsRegex": { "pattern": "^accounts_.+?$", "options": "ms" } } ]