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

Mongoose Model.find() methods query string not working

我正在尝试简单休息 api。我在 mongodb 中有一个集合,我使用 mongoose pkg 将我的数据库连接到我的应用程序。我可以使用 Operator.find() 访问所有没有查询字符串的项目,但它不适用于查询字符串 ex: Operator.find({name:'Kapkan'}) it returns 所有这些。 Operator.findOne({name:'Azami'}) 也不起作用。查询字符串 returns 无论如何都是集合的第一个元素。

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,
.
.
.
})