aaa*_*dan 5 regex mongoose mongodb
“我怎样才能在 mongo 中进行不区分大小写的查找”这个问题似乎主要是按照“使用正则表达式”来回答的。如果您的搜索字符串事先已知 ( /foo/),或者已知不包含正则表达式运算符 ( ^.+*$/\-()[]...),则这很好。
就我而言,我想对电子邮件地址进行不区分大小写的搜索,该地址可以包含点和加号。“正则表达式转义”字符串当然是可能的,但即使有一个标准的“ Regex.escapeString”函数(实际上没有),对于这样一个简单的问题,它已经开始变得难以解释和维护。
有没有办法在不使用正则表达式的情况下在 mongo 中进行不区分大小写的匹配?
您可以使用aggregate()to 来执行此操作,而不是find()使用$regex:
db.collection.aggregate([
{
"$match": {
"$expr": {
"$eq": [
{ "$toLower": "$email" },
{ "$toLower": "EXAMPLE+@gmail.com" }
]
}
}
}
])
Run Code Online (Sandbox Code Playgroud)