是否有可能为Mongodb搜索查询忽略非字母数字字符?



例如我的数据包括:

[
{username: "velikiye.lucky 09", region: "Hamburg"},
{username: "Roger. blue", region: "Hamburg"},
]

如果我输入查询来搜索">roger blue";(注意,我没有在我的查询中使用点字符)

如何在mongoDB中获得{username: "roger. blue", region: "Hamburg"}?目前,我必须从数据库中加载所有数据,删除其中所有非字母数字字符,将其小写,然后搜索所请求的用户名。

您应该像这样使用regex-match:

db.collection.find({
username: {
$regex: "(.*)roger(.*)blue(.*)",
$options: "i"
}
})

操场上链接。

这里,(.*)将忽略任何字符。如果您只想忽略非字母数字字符,那么正如您在注释中提到的,请尝试如下操作:

db.collection.find({
username: {
$regex: "[^a-zA-Z0-9]*roger[^a-zA-Z0-9]*blue[^a-zA-Z0-9]*",
$options: "i"
}
})

操场上链接。

相关内容

最新更新