在匹配条件之前忽略特殊字符

Ank*_*kit 1 mongodb

如何在mongo中编写相应的以下内容?在检查条件之前,我需要忽略特定列中的某些字符(空格,连字符).为了举一个mysql的例子,我只是删除空间.

select * from TABLE
where REPLACE('name', ' ', '') = 'TEST'
Run Code Online (Sandbox Code Playgroud)

因此,如果name列具有应该匹配的"TES T".

dgi*_*ugg 5

您可以$where在查询中尝试使用运算符:

{$where: "this.name.replace(/[ -]/g,'') == 'TEST'"}
Run Code Online (Sandbox Code Playgroud)

要么:

{$where: "this.name.match(/T[ -]*E[ -]*S[ -]*T/)"}
Run Code Online (Sandbox Code Playgroud)

或直接a $regex:

{name: /T[ -]*E[ -]*S[ -]*T/}
Run Code Online (Sandbox Code Playgroud)

有关运营商的更多信息$where $regex