Получите все данные из коллекции с помощью mongodb и node js - PullRequest
1 голос
/ 07 мая 2020

У меня есть коллекция "Расписание". Я хочу отобразить все данные из коллекции, которые состоят только из Класс: 6 бакти Когда я запускаю console.log (). Я получил только Object ID документов. Я хочу отобразить все данные из документов, в которых есть Класс: 6 бакти .

Данные из коллекции

{
    "_id" : ObjectId("5eaf124852a49d2cb4aa9d46"),
    "teacher" : "Siti Noor Khairani binti Afifudeen",
    "timeslot" : 1,
    "subject" : "Bahasa Melayu",
    "classroom" : "6 bakti",
    "year" : "2020",
    "__v" : 0
}

{
    "_id" : ObjectId("5eaf12a252a49d2cb4aa9d47"),
    "teacher" : "Siti Noor Khairani binti Afifudeen",
    "timeslot" : 2,
    "subject" : "Bahasa Inggeris",
    "classroom" : "6 Usaha",
    "year" : "2020",
    "__v" : 0
}
{
    "_id" : ObjectId("5eafd9285015e9001756d568"),
    "teacher" : "Siti Noor Khairani binti Afifudeen",
    "timeslot" : 2,
    "subject" : "Bahasa Melayu",
    "classroom" : "6 bakti",
    "year" : "2020",
    "__v" : 0
}

Это мой файл маршрута

я получаю параметр url, используя класс.

router.get('/timetable_class/view/:id',mid, function(req,res){
  Timetable.find({classroom:req.params.id},{year:currentYear},function(err,timetable){
    if (err) throw err;
    console.log(currentYear);
    console.log(timetable, "hai");
    res.render('admin_content/view_timetable_class',{'timetable':timetable});
  });
});

Просмотр файла

<H1><FONT COLOR="DARKCYAN"><CENTER><%= timetable %></FONT></H1>
       <table border="2" cellspacing="3" align="center">
          <tr>
          <td align="center">
              <td><%= timetable.classroom %>  
               <td><%= timetable.subject %>                                
      </td>

</tr>

Ответы [ 2 ]

1 голос
/ 07 мая 2020

У вас есть находка с несколькими условиями. Например, db.collection.find (запрос, проекция) find принимает запрос и проекцию в качестве параметра. В вашем случае вы передаете {classroom: req.params.id} как запрос и {year: currentYear} как Projection, что неверно. Вы используете find с несколькими условиями, поэтому вы должны передать условие как один аргумент.

В вашем случае вы делаете

 TimeTable.find({classroom:req.params.id}, {year:currentYear})

вместо этого вы должны найти с помощью

 TimeTable.find({classroom: req.params.id, year: currentYear})
0 голосов
/ 07 мая 2020

Попробуйте этот оператор $ и: {$ and: [{}, {}]}

const currentYear = new Date().getFullYear()

Timetable.find({$and:[{classroom:req.params.id},{year:currentYear}]},function(err,timetable){
    if (err) throw err;
    console.log(currentYear);
    console.log(timetable, "hai");
    res.render('admin_content/view_timetable_class',{'timetable':timetable});
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...