簡體   English   中英

Mongoose 查找不適用於查詢 object

[英]Mongoose find is not working with query object

我正在用mongo db學習node.js 我有一個代碼來獲取記錄並且工作正常

await studentModel.find({}, (err, data) => {
    if (err) throw err;
      students= data.map((d) => {
        return new InterviewQuestion(d['roll_no'], d['name']);
      });
    });

但是當我想過濾它們時,查詢不會返回任何記錄

await studentModel.find({sClass: sClass}, (err, data) => { //sClassis a field in document and also the name of variable
    if (err) throw err;
      students= data.map((d) => {
        return new InterviewQuestion(d['roll_no'], d['name']);
      });
    });

當您使用 async/await 時,不要使用回調並在 async/await 方法中使用 try/catch,這樣您就可以這樣做

try {
  let data = await studentModel.find({});
  students = data.map((d) => {
    return new InterviewQuestion(d["roll_no"], d["name"]);
  });
} catch (err) {
  throw err;
}

try {
  let data = await studentModel.find({ sClass: sClass });
  students = data.map((d) => {
    return new InterviewQuestion(d["roll_no"], d["name"]);
  });
} catch (err) {
  throw err;
}

這個查詢是正確的

await studentModel.find({ sClass: sClass })

你也可以試試這個:

await studentModel.find({ sClass})

你的問題來自另一件事,因為我測試了查詢每件事都可以

我為變量sClass使用了不同的名稱,然后它起作用了。 我仍然想知道為什么不允許使用與文檔字段同名的過濾器變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM