繁体   English   中英

Mongoose Model.find() 方法查询字符串不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM