Mongoose - 是不是可以修改键的值以匹配 find() 查询的 where 条件?
Posted
技术标签:
【中文标题】Mongoose - 是不是可以修改键的值以匹配 find() 查询的 where 条件?【英文标题】:Mongoose - Is it possible to modify key's value to match with where condition for find() query?Mongoose - 是否可以修改键的值以匹配 find() 查询的 where 条件? 【发布时间】:2017-08-31 22:00:56 【问题描述】:突然间我不得不使用 MongoDB 数据库创建一个项目时,我对 Oracle 非常熟悉。我正在使用猫鼬连接到我的 MongoDB。我的问题是,在进行查询之前是否可以匹配查找条件?
例如,我在我的 MongoDB 中得到了这个name : John
,然后我只需要通过 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"
);
我一直在寻找解决方案,但找不到。有没有办法将name
的值设置为大写以匹配我需要的结果?
任何帮助将不胜感激:)
编辑: 我通过对 mongoose 使用 RegExp() 找到了解决此问题的方法。 RegExp 将使我的 mongoDB 文档不区分大小写以匹配我的查询参数。此答案中的更多详细信息。 https://***.com/a/9824712/7498283
【问题讨论】:
【参考方案1】:你可以使用toUpperCase()
的javascript,如果你想用大写字母进行查找。 refer-doc.
试试下面的代码:
workers.find(
"name": ("JOHN").toUpperCase()
);
希望这会有所帮助。
【讨论】:
我需要大写的是我文档中的value
,而不是从我的客户端发送的参数。但是,谢谢你的回复。 :D
您能否向我们展示您的数据库以及您希望通过查找查询获得什么?
pastebin.com/kfJp6pgQ 例如,我需要使用JOHN
作为过滤器来获取John
。谢谢你:D
请看question的答案
你也可以试试docs.mongodb.com/manual/reference/operator/query/text/…【参考方案2】:
您可以在 mongodb 中使用 $toUpper 运算符。
worker.aggregate([
$project: "name":$toUpper:"$name",
$find:"name":"JOHN"
]);
【讨论】:
对不起,我正在使用猫鼬做数据库 CRUD。我编辑了我的帖子只是为了指出这一点。有没有使用mongoose在mongoDB中操作的解决方案?以上是关于Mongoose - 是不是可以修改键的值以匹配 find() 查询的 where 条件?的主要内容,如果未能解决你的问题,请参考以下文章
通过 mongoose 模式将数据存储在 mongodb 中,不传递唯一真键的值
Angular Checkbox - 无法获取数据库的值以匹配 html 复选框中的复选标记