【问题标题】:Select Distinct in Node jS and MongoDB在 Node jS 和 MongoDB 中选择 Distinct
【发布时间】:2020-08-20 13:39:18
【问题描述】:

我有一个问题,我希望能够获取与课堂相关的所有数据而没有重复。我的代码看起来像这样。问题是控制台中的数据正确显示,没有重复。但在站点中没有数据显示。

这是控制台中的数据显示

[ '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>

【问题讨论】:

  • 您是否尝试在每个循环中渲染一些文本?示例:这应该是一个教室
  • 我将 这应该是一个教室 添加到循环中并且它工作正常。但不适用于假设查看教室的“”。

标签: javascript node.js mongodb ejs


【解决方案1】:

像下面这样更改你的代码,因为你的数组不包含 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>

【讨论】:

  • 感谢 bro.code 工作,只是一个快速的问题,你的意思是数组不包含 js 对象,它只是原始值 ['6 Usaha','6 bakti']?
  • 我的意思是,如果您的数组类似于[{classroom:6. },{classroom:7}],那么您的代码将有效,但它只包含原语 (Strings) 数据类型
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-17
  • 2022-08-18
  • 1970-01-01
  • 2021-12-07
  • 2013-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多