node.js - Mongoose model.find 查询字符串

标签 node.js regex mongodb mongoose

我对 Mongoose 模型的查询字符串有疑问。下面的代码工作正常。但是,如果我构造与字符串相同的查询,它就不起作用。 “query”的控制台输出是

'diagnosis_text_de': /.*depression.*/i

我不明白为什么这不起作用以及如何解决这个问题。

工作:

getByFullText = (req, res) => {
    let query: String = '\'diagnosis_text_de\': /.*' + req.body.qICD + '.*/i';
    console.log(query);
    this.model.find({
        'diagnosis_text_de': /.*depression.*/i
    }, (err, docs) => {
        if (err) {
            return console.error(err);
        }
        res.json(docs);
    });
}

不工作:

...
this.model.find({ query }, (err, docs)
...

最佳答案

亲爱的,您可以使用 mongodb 运算符 $regex 和 $options,如下所示

getByFullText = (req, res) => {
        let query = {
           diagnosis_text_de:{
            $regex: req.body.qICD,
            $options:"i"
          }
        }
        this.model.find(query,(err, docs) => {
            if (err) {
                return console.error(err);
            }
            res.json(docs);
        });
    }

关于node.js - Mongoose model.find 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44971890/

相关文章:

node.js - 调试node.js : "iron-node not recognized"

javascript - 在nodejs中将对象添加到MySQL结果行(RowDataPacket)

php - Preg 匹配 2 个字符串之间的任何内容

node.js - Mongoose 无法读取具有复杂模式的未定义属性

node.js - Dojo请求写入[object Object]请求

javascript - 需要在 OR 赋值中的 yield 表达式周围加上括号的确切句法歧义是什么?

regex - emacs 编译模式将错误行标记为错误

php - eregi_replace ("[\]",'' ,$data) -- 这一行是做什么的?

python - MongoDB 聚合最近记录并将某些字段匹配到最近 30 天

javascript - MongoDB - 多个查询和单个文档结果