如何编写符合JSON Schema规范的MongoDB 3.6集合名称校验正则
最终可用正则及配置
你原有正则存在两处需要调整的点:一是开头字符集包含了数字,不符合MongoDB「只能下划线或字母开头」的官方要求;二是缺少system.前缀的负向校验。
适配JSON Schema正则子集的最终pattern写法:
^(?!system\.)[a-zA-Z_][^$ \0]*$
修改后的完整JSON Schema配置如下:
'collectionName': { description: "MongoDB集合名称,符合官方命名规范", type: 'string', minLength: 1, maxLength: 120, pattern: '^(?!system\\.)[a-zA-Z_][^$ \\0]*$', example: 'MyCollection', }
校验规则匹配验证
所有要求的场景均可以正常覆盖:
- 非法名
-collection不匹配,合法名_collection、collec-tion可正常匹配 - 包含空格的
collec tion、包含$的collec$$tion均不匹配 systemCollection无后缀点,可正常匹配- 预留前缀名
system.collection触发负向校验,不匹配
内容的提问来源于stack exchange,提问作者Pradip
相关产品推荐
相关产品推荐

