Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Mongo正则表达式,用于;“不匹配”;或相反_Regex_Mongodb_Mongodb Query_Regex Negation - Fatal编程技术网

Regex 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

我的mongo文档都包含一个名为
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$)"}})