[英]Mongoose Model.find() methods query string not working
我正在尝试制作简单的 rest api。我在 mongodb 中有一个集合,我使用 mongoose pkg 将我的数据库连接到我的应用程序。 我可以使用Operator.find()
访问所有没有查询字符串的项目,但它不适用于查询字符串 ex: Operator.find({name:'Kapkan'})
它返回所有项目。 Operator.findOne({name:'Azami'})
也不起作用。 无论如何,查询字符串都会返回集合的第一个元素。
app.get('/api/operators',async(req,res) => {
let operators;
try{
if(req.query.name){
Operator.find({name:'Kapkan'}).then((data) => {
console.log(data);
});
}
else
operators = await Operator.find();
res.send(operators)
}catch(er){
console.log(er);
}
})
您没有将带有过滤器的查询结果分配给运算符。 不确定您周围是否有{}
,但请尝试重构代码,如下所示:
app.get('/api/operators',async(req,res) => {
const filters = {};
if (req.query.name) {
filters.name = req.query.name;
}
const data = await Operator.find(filters);
console.log(data);
return res.json({ data });
})
我检查了我的模式,我意识到我忘记了输入名称字段......
const OperatorSchema = new Schema({
_id:Number,
logo:String,
image:String,
unit:String,
*name:String,
side:String,
.
.
.
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.