フィルターにおける正規表現
バージョン 1.6 の新機能.
1.6以降、start
APIincludeNamespaces
では、excludeNamespaces
Filtered Sync で使用される パラメータと パラメータのフィルタを構成するために、正規表現を使用することがサポートされるようになりました。
構文
フィルタリングされた同期を使用するためにmongosync
のデータベースとコレクションを照合するには、正規表現を使用できます。
{ "databaseRegex": { "pattern": "<string>", "options": "<string>" }, "collectionsRegex": { "pattern": "<string>", "options": "<string>" } }
フィルター ドキュメント内の正規表現では、次のフィールドが使用されます。
オプション | タイプ | 説明 |
---|---|---|
collectionsRegex | ドキュメント | フィルターで一致させるコレクションを指定します。 |
collectionsRegex.options | string | 一致で使用する正規表現オプション。 |
collectionsRegex.pattern | string | 一致する正規表現パターン。 |
databaseRegex | ドキュメント | フィルターを一致させるデータベースを指定します。 |
databaseRegex.options | string | 一致で使用する正規表現オプション。 |
databaseRegex.pattern | string | 一致する正規表現パターン。 |
これらのオプションは、 includeNamespaces
とexcludeNamespaces
パラメーターの両方で使用できます。
ユースケース
正規表現を使用すると、複数のデータベースやコレクションを単一のパターンで一致させることができます。 複数の同じ名前のデータベースまたはコレクションを照合する場合は、個々のデータベースまたはコレクションのグループに対して一連のフィルターを作成するよりも正規表現を使用した方が簡単な場合があります。
詳細
正規表現オプション
databaseRegex
とcollectionsRegex
はそれぞれoptions
フィールドをサポートしています。このフィールドを使用して正規表現オプションを構成できます。 内部的には、 mongosync
はフィルターとオプションを $regex
演算子に渡します。 その演算子が使用できるオプションは、Filted Sync で使用できます。
たとえばこのフィルターは、 accounts_
string で始まるsales
データベース内のコレクションと一致します。
"includeNamespaces": [ { "database": "sales", "collectionsRegex": { "pattern": "^accounts_.+?$", "options": "ms" } } ]