Mongoose – 是否有可能修改键的值以匹配find()查询的条件?

我对Oracle非常熟悉,突然间我不得不使用MongoDB数据库创build项目。 我正在使用mongoose来连接到我的MongoDB。 我的问题是,在查询之前可以匹配查找条件吗? 例如,我得到这个name : John在我的MongoDB中,然后我只需要通过Oracle SQL来完成。

 SELECT * FROM MY_SCHEMA.WORKERS WORKER WHERE UPPER(WORKER.NAME) = 'JOHN' 

在mongoDB中,我所知道的和能做的就是这个。

 var mongoose = require('mongoose'); mongoose.connect('localhost:27017/myDB'); workers.find( { "name": "JOHN" } ); 

我一直在寻找解决scheme,找不到一个。 有没有办法将name的值设置为大写以匹配我需要的结果?

任何帮助,将不胜感激 :)

编辑:我find了这个问题的解决scheme,通过使用RegExp()mongoose。 RegExp将使我的mongoDB文档不区分大小写以匹配我的查询参数。 在这个答案的更多细节。 https://stackoverflow.com/a/9824712/7498283

你可以使用JavaScript的toUpperCase() ,如果你想用大写字母找。 refer-doc 。

试试下面的代码:

 workers.find( { "name": ("JOHN").toUpperCase() }); 

希望这会有所帮助。

您可以在mongodb中使用$ toUpper运算符。

  worker.aggregate([ {$project: {"name":{$toUpper:"$name"}}}, {$find:{"name":"JOHN"}} ]);