バージョン 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" } } ]