我对 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/