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"}} ]);