我的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)
...
答案 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);
});
}