繁体   English   中英

Mongoose 不区分大小写

[英]Case-insensitive with Mongoose

我正在拼命寻找一种方法来提供 String 并使其case-insensitive ,并使用MongoDB获得结果。 我尝试使用RegEx ,但它不能正常工作,因为如果给定的 String 有一些字符,它们可能会与RegEx冲突。

我看到 MongoDB 允许这样做,但没有 RegEx,这似乎更好,使用$caseSensitive ,除了我不明白这是如何工作的。

你能帮我吗?

我曾经做过的事情:

const user = await userModel.findOne({ Name: new RegExp("\\b" + request.username.toString().trim() + "\\b", "i"), Password: hash });

预先感谢您的回答!

最好的选择是创建不区分大小写的索引

例子:

   db.collection.createIndex( { Name: 1},
                  { collation: { locale: 'en', strength: 2 } } )

搜索不敏感如下:

 db.collection.find( { Name: "JohN" } ).collation( { locale: 'en', strength: 2 } )

会找到:John,joHn,JOHN 等。

我认为你应该使用 $regex with i 作为选项,就像这样,在这里阅读更多Mongo 文档

const user = await userModel.findOne({ Name :{regex:/request.username.toString().trim()/i}, Password: hash });

它应该工作正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM