在 SQL 世界中,我可以做一些事情:
SELECT name FROM table WHERE UPPER(name) = UPPER('Smith');
这将匹配对“Smith”、“SMITH”、“SmiTH”等的搜索……因为它强制查询和值是相同的大小写。
但是,如果不使用 RegEx,MongoDB 似乎没有此功能,RegEx 不会使用索引,并且对于大量数据会很慢。
有没有办法在 MongoDB 中对存储的值进行搜索之前将其转换为特定的情况?
我遇到了 $toUpper 聚合,但我不知道在这种特殊情况下如何使用它。
如果在搜索之前无法转换存储的值,是否可以让 MongoDB 在 Mongo 中创建值时转换它?因此,当我将文档添加到集合中时,它会强制将“名称”属性用于特定情况吗?类似于 Rails 世界中的回调。
看起来也可以为 MongoDB 创建存储的 JS,类似于存储过程。这也是一个可行的解决方案吗?
主要是在寻找正确方向的推动力;一旦我知道我在寻找什么,我就可以找出特定的代码,但到目前为止,我什至不确定我想要的功能是否可行。