Regex Mongo正则表达式,用于;“不匹配”;或相反
我的mongo文档都包含一个名为Regex Mongo正则表达式,用于;“不匹配”;或相反,regex,mongodb,mongodb-query,regex-negation,Regex,Mongodb,Mongodb Query,Regex Negation,我的mongo文档都包含一个名为templateName的字段。有几个文档包含该值:a\u SystemDefaultTemplate,b\u SystemDefaultTemplate,c\u SystemDefaultTemplate等 我想查找那些templateName不以(或包含)SystemDefaultTemplate结尾的文档 我知道可以使用$not操作符这样做: db.collection.find({templateName: {$not: /.*SystemDefaultT
templateName
的字段。有几个文档包含该值:a\u SystemDefaultTemplate
,b\u SystemDefaultTemplate
,c\u SystemDefaultTemplate
等
我想查找那些templateName不以(或包含)SystemDefaultTemplate结尾的文档
我知道可以使用$not
操作符这样做:
db.collection.find({templateName: {$not: /.*SystemDefaultTemplate$/}})
但是如何使用regex实现同样的功能呢
我试过下面的方法,但似乎不起作用
db.collection.find({templateName: {$regex: "^(.*SystemDefaultTemplate$)"}})
尝试消极前瞻(意思是它不应该包含所提到的短语)
代码>为负前瞻。下面是一些关于它的解释
“赛后消极前瞻:\d+(?!\d |美元)
样本匹配:100比索兑100
解释:\d+匹配100,然后负前瞻(?!\d |美元)断言在字符串中的该位置,紧跟其后的既不是数字也不是字符“ 美元“
比赛前的负面展望:(?!\d+美元)\d+
样本匹配:100比索兑100
说明:负前瞻(?!\d+美元)断言在字符串的当前位置,后面不是数字,而是字符” 如果断言成功,引擎将数字与\d+匹配。“您也可以将$not
和$regex
组合起来<代码>{$not:{$regex:“^(.*SystemDefaultTemplate$)”}}
db.collection.find({templateName: {$regex: "^(?!SystemDefaultTemplate$)"}})