【问题标题】: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://stackoverflow.com/a/9824712/7498283

【问题讨论】:

    标签: javascript node.js oracle mongodb mongoose


    【解决方案1】:

    你可以使用toUpperCase() 的javascript,如果你想用大写字母进行查找。 refer-doc.

    试试下面的代码:

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

    希望这会有所帮助。

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 对不起,我正在使用猫鼬做数据库 CRUD。我编辑了我的帖子只是为了指出这一点。有没有使用mongoose在mongoDB中操作的解决方案?
    猜你喜欢
    • 2021-11-03
    • 1970-01-01
    • 2022-12-23
    • 2015-03-07
    • 1970-01-01
    • 2020-12-03
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多