mongoose model.find查询字符串

时间:2017-07-07 13:22:20

标签: node.js regex mongodb mongoose

我的mongoose模型的查询字符串有问题。下面的代码工作正常。但是,如果我构造与String相同的查询,它就无法正常工作。 “查询”的控制台输出是

'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)
...

1 个答案:

答案 0 :(得分:0)

亲爱的,您可以使用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);
        });
    }