例如我的数据包括:
[
{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"
}
})
操场上链接。