簡體   English   中英

如何在 Mongoose 和 Nddejs 中使用 $elemMatch 設置默認值

[英]How to set default value with $elemMatch in Mongoose and Nddejs

我有一條路線,假設根據 3 個輸入過濾我的文件 - 並且有效。

app.get("/api/getFiles", (req, res) => {
  let grade = req.query.grade;
  let study = req.query.study;
  let subject = req.query.subject;

  User.find(
    { files: { $elemMatch: { study: study, subject: subject, grade: grade } } },
    (err, doc) => {
      if (err) res.status(400).send(err);
      res.send(doc);
    }
  );
});

然而,這些輸入並不相互依賴。

EG if grade = 5函數應該返回匹配特定成績的文件,而不管他們的studysubject

$elemMatch中是否有任何默認值,在這種情況下,無論其studysubject如何,都可以獲得所有文件?

$elemMatch 沒有默認值,您只需在代碼中編寫自定義條件

app.get("/api/getFiles", (req, res) => {
  let grade = req.query.grade;
  let study = req.query.study;
  let subject = req.query.subject;

  if grade == 5:{
  User.find(
    { files: { $elemMatch: {grade: 5 } } },
    (err, doc) => {
      if (err) res.status(400).send(err);
      res.send(doc);
    }
  );}
  else: {
  User.find(
    { files: { $elemMatch: { study: study, subject: subject, grade: grade } } },
    (err, doc) => {
      if (err) res.status(400).send(err);
      res.send(doc);
    }
  );}
});

暫無
暫無

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

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