如何在ejs中呈现不同的mongodb模式/模型并对其进行过滤



我正试图筛选出mongoDB找到的集合,并将其显示在EJS文件中。然而,当我尝试这样做时,它更愿意向我显示集合中的所有字段,而不是我想要的一个字段值。我想要的字段被称为:";银;我使用的是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});
}
})
})

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

我试着通过做例如:data.silver来过滤它,但这只是返回一个空字段。所以我想知道怎样才能做到这一点。

尽管我已经找到了解决方案。很有吸引力的是,你只需要在ejs文件中循环它:

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

这显示了我所需要的价值。

最新更新