【问题标题】:How to render different mongodb schema/model in ejs and filter it如何在 ejs 中渲染不同的 mongodb 模式/模型并过滤它
【发布时间】:2021-07-12 19:40:25
【问题描述】:

我正在尝试过滤掉 mongoDB 找到的集合并将其显示在 EJS 文件中。但是,当我尝试这样做时,它宁愿向我显示集合内的所有字段,而不是我想要的一个字段值。我想要的字段称为:“Silver”,我使用的是 nodejs、express 和 MongoDB。

这是架构:

const mongoose = require('mongoose');

const merchant1schema = new mongoose.Schema({
 items: {
  type: Array
  },  
 silver: {
 type: Number
 }
});

module.exports = mongoose.model('merchant1', merchant1schema);

这是我用来查找集合然后在 EJS 中显示回来的代码:

router.get('/merchants', ensureAuthenticated, async (req, res) => {
merchant1.find({}, function (error, data) {
console.log(data)
 if (error) {
 console.log(error);
 } else {
res.render("merchants", {silver: data, user: req.user});
 }
})
})

但是,当我在控制台记录数据时,数据仅显示整个模型,而不是我想要的字段银。这是输出: [{项目:[],_id:60ec87b6051bf8edb62cf389,银:200000}]

我曾尝试通过执行以下操作将其过滤掉:data.silver 但这只是返回一个空字段。所以我想知道我怎么能做到这一点。

【问题讨论】:

    标签: javascript mongodb express ejs


    【解决方案1】:

    没关系,我找到了解决方案。显然你只需要在 ejs 文件中循环遍历它:

    <% for (var i = 0; i < data.length; i++) { %>
    <h3 id="merchantsilvervalue"><%= data[i].silver%></h3>
    <% } %>

    这显示了我需要的值。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      相关资源
      最近更新 更多