过滤器中的正则表达式
1.6 版本中的新增功能。
从1.6开始, start
API现在支持使用正则表达式为Filtered Sync中使用的includeNamespaces
和excludeNamespaces
参数配置筛选器。
语法
要匹配数据库和collection,以便mongosync
使用Filtered Sync ,可以使用正则表达式:
{ "databaseRegex": { "pattern": "<string>", "options": "<string>" }, "collectionsRegex": { "pattern": "<string>", "options": "<string>" } }
筛选器文档中的正则表达式使用以下字段:
选项 | 类型 | 说明 |
---|---|---|
| 文档 | 指定您希望筛选器匹配哪些集合。 |
| 字符串 | 匹配中使用的正则表达式选项。 |
| 字符串 | 要匹配的正则表达式模式。 |
| 文档 | 指定您希望筛选器匹配哪些数据库。 |
| 字符串 | 匹配中使用的正则表达式选项。 |
| 字符串 | 要匹配的正则表达式模式。 |
这些选项可与includeNamespaces
和excludeNamespaces
参数一起使用。
用例
正则表达式允许您将多个数据库或collection与单个模式进行匹配。如果要匹配多个名称相似的数据库或collection,与为单个数据库或collection群组创建一系列筛选器相比,正则表达式可能更容易匹配。
详情
正则表达式选项
databaseRegex
和collectionsRegex
各支持一个options
字段,您可以使用该字段配置正则表达式选项。 在内部, mongosync
将筛选器和选项传递给 $regex
操作符。 该操作符可用的选项可与 Filterred Sync 一起使用。
例如,此筛选器将匹配sales
数据库中以accounts_
字符串开头的collection:
"includeNamespaces": [ { "database": "sales", "collectionsRegex": { "pattern": "^accounts_.+?$", "options": "ms" } } ]