我的 mongo 文档都包含一个名为templateName
。有一些包含该值的文档:a_SystemDefaultTemplate
, b_SystemDefaultTemplate
, c_SystemDefaultTemplate
etc.
我想find
templateName 不以(或包含)结尾的那些文档SystemDefaultTemplate
我知道可以使用$not
像这样的运算符:
db.collection.find({templateName: {$not: /.*SystemDefaultTemplate$/}})
但是我如何使用正则表达式来做同样的事情呢?
我已经尝试过以下方法,但似乎不起作用。
db.collection.find({templateName: {$regex: "^(.*SystemDefaultTemplate$)"}})
尝试使用否定的前瞻(意味着它不应该包含提到的短语)
db.collection.find({templateName: {$regex: "^(?!SystemDefaultTemplate$)"}})
?!
是消极的向前看。这是一些关于它的解释http://rexegg.com/regex-disambiguation.html#lookarounds http://rexegg.com/regex-disambiguation.html#lookarounds
“比赛后负向前瞻:\d+(?!\d| 美元)
匹配示例:100 比索兑换 100
解释:\d+ 匹配 100,然后负向先行 (?!\d|dollars) 断言在字符串中的该位置,紧随其后的既不是数字也不是字符“ dollars”
匹配前的负向前瞻:(?!\d+ 美元)\d+
匹配示例:100 比索兑换 100
解释:负向先行 (?!\d+dollars) 断言在字符串的当前位置,后面的不是数字,而是字符“ dollars”。如果断言成功,引擎将使用 \d+ 来匹配数字。”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)