这个问题实际上是以下问题的扩展。
在匹配条件之前忽略特殊字符
我正在使用mongodb聚合来从表中查找一些产品。以下是我需要改进的查询的一部分。
现在它只匹配包含"kdf8210"这个单词的产品名称,但我也需要它与以下内容匹配。
基本上,匹配应该忽略中间的任何特殊字符。
我刚学到
{
$match : { "name" : { $regex : "kdf8210"} }
}
现在它只匹配包含"kdf8210"这个单词的产品名称,但我也需要它与以下内容匹配。
kdf.8210, kdf-8210, kdf.82-10
基本上,匹配应该忽略中间的任何特殊字符。
我刚学到
$where
不能用作聚合管道的一部分,所以引用问题的答案没有太大帮助。
(?i:^k[.-]?.and-so-on.$)
...换句话说,将正则表达式放在(?i: )
构造中,其中"i"表示不区分大小写。 - DavidO'name' : /M[.-]?f[.-]?M[.-]?8[.-]?0/i
- Ankit