1.6 版本中的新增功能。
从 1.6 开始,start
API 现在支持使用正则表达式为 Filtered Sync 中使用的 includeNamespaces
和 excludeNamespaces
参数配置筛选器。
语法
要匹配数据库和collection,以便mongosync
使用Filtered Sync ,可以使用正则表达式:
{ "databaseRegex": { "pattern": "<string>", "options": "<string>" }, "collectionsRegex": { "pattern": "<string>", "options": "<string>" } }
您传递给过滤的正则表达式模式必须遵循MongoDB 服务器支持的 regex
语法。
过滤文档中的正则表达式使用 regex
指南中列出的 options
。options
是一个由连接的选项组成的字符串。 示例,要指定 i
和 s
选项,请将 "si"
传递给 options
。连接选项的顺序并不重要。
筛选器文档中的正则表达式使用以下字段:
选项 | 类型 | 说明 |
---|---|---|
| 文档 | 指定您希望筛选器匹配哪些集合。 |
| 字符串 | 匹配中使用的正则表达式选项。 |
| 字符串 | 要匹配的正则表达式模式。 |
| 文档 | 指定您希望筛选器匹配哪些数据库。 |
| 字符串 | 匹配中使用的正则表达式选项。 |
| 字符串 | 要匹配的正则表达式模式。 |
这些选项可与includeNamespaces
和excludeNamespaces
参数一起使用。
用例
正则表达式允许您将多个数据库或collection与单个模式进行匹配。如果要匹配多个名称相似的数据库或collection,与为单个数据库或collection群组创建一系列筛选器相比,正则表达式可能更容易匹配。
详情
正则表达式选项示例
databaseRegex
和 collectionsRegex
各支持一个 options
字段,您可以使用该字段配置正则表达式选项。在内部,mongosync
将过滤和选项传递给 $regex
操作符。该操作符可用的选项可与 Filterred Sync 一起使用。
示例,此过滤将匹配 sales
数据库中以 accounts_
字符串开头的集合。 过滤还指定选项 m
,以匹配具有多行值的字符串每行开头或结尾的字符,并指定选项 s
,以允许点字符匹配包括换行符在内的所有字符。
"includeNamespaces": [ { "database": "sales", "collectionsRegex": { "pattern": "^accounts_.+?$", "options": "ms" } } ]