Выберите Distinct в Node jS и MongoDB. - PullRequest
1 голос
/ 05 мая 2020

У меня проблема, когда я хочу получить все данные, относящиеся к классу, без дубликатов. Мой код выглядит так. Проблема в том, что в консоли данные отображаются правильно, дубликатов нет. Но на сайтах нет отображения данных.

Это отображение данных в консоли

[ '6 Usaha', '6 bakti' ]

Схема расписания

var TimetableSchema = new mongoose.Schema ({

    timeslot: {
        required: true, 
        'type': Number,

    },

    classroom :{
        type:String, 
        required: true, 
    },

    subject :{
        type:String, 
        required: true, 
    },

    teacher :{
        type:String, 
        required: true, 
    },

    year :{
        type:String, 
        //required: true, 
    },

    session :{
        type:Number,
        //required:true,
    }


})

var Timetable = mongoose.model('Timetable', TimetableSchema);
module.exports = Timetable;

Маршрут

router.get('/timetable',mid, function(req,res){
  Timetable.distinct("classroom",function(err,timetable){
    if (err) throw err;
    console.log(timetable);
    res.render('admin_content/timetable',{'timetable':timetable});
  });
});

Просмотры

<tbody>
   <% timetable.forEach(function (timetable) { %>
   <tr>
   <td><%= timetable.classroom %></td>
   <td><a class="button" href="/subject/edit/<%= timetable.classroom %>"</a>View&nbsp;</td>
   </tr>
   <% }) %>
</tbody>

1 Ответ

2 голосов
/ 05 мая 2020

Измените свой код, как показано ниже. Поскольку ваш массив не содержит js объектов, его просто primitive значения [ '6 Usaha', '6 bakti' ]

<tbody>
   <% timetable.forEach(function (value) { %>
   <tr>
   <td><%= value %></td>
   <td><a class="button" href="/subject/edit/<%= value %>"</a>View&nbsp;</td>
   </tr>
   <% }) %>
</tbody>
...