当前位置: 首页 > 知识库问答 >
问题:

如何将多个嵌入集合中的数据获取到EJS中?

郑佐
2023-03-14

大家好,这个问题有点傻,但我是编程新手。所以我一直在为我的大学项目开发一个产品管理系统,使用ejs、nodejs、express、mongoose、MongoDB。所以我不知道如何获得类别标题而不是Objectid。我尝试使用<%=issue.product.category.title%>,但它为空。

在此输入图像说明

<table class="table table-bordered">
  <thead class="bg-dark text-center">
    <tr class="text-white">
      <th>Employee Name</th>  
      <th>Email</th>  
      <th>Employee Number</th>  
      <th>Contact Number</th>   
      <th>Product ID</th>
      <th>Title</th>
      <th>Manufacturer</th>
      <th>Status</th>
      <th>Category</th>
      <th>Date/Time</th>
    </tr>
  </thead>
  <tbody class="text-center">
    <% if (issue.length> 0) { %> <% issue.forEach(issue=> { %>
    <tr>
      <td> <%= issue.ename %></td> 
      <td><%= issue.email  %></td>  
      <td><%= issue.enumber %></td>  
      <td><%= issue.cnumber %></td>  
      <td><%= issue.product.prodid%></td>
      <td><%= issue.product.title%></td>
      <td><%= issue.product.manufacturer%></td>
      <td><%= issue.product.status%></td> 
      <td> <%= issue.product.category%></td>
      <td><%= issue.issueTime %> </td>
      <% }) %> <% } else { %>

      <p>There are no issue to display...</p>

      <% } %>
    </tr>
  </tbody>
</table>

const issueSchema = new Schema({
ename: {
    type: String,
    required: true
},
email: {
    type: String,
    required: true
},
enumber: {
    type: String,
    required: true
},
cnumber: {
    type: String,
    required: true
},
desig: {
    type: String,
    required: true
},
department: {
    type: String,
    required: true
},
description: {
    type: String,
    required: true
},  
product: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Prodcut'
},
issueTime: {
    type: Date,
    default: Date.now()
}

});

常量Issue=mongoose.model(“Issue”,issueSchema);

模数.出口=发行;

在这里,我有嵌入式产品集合。

const productSchema = new Schema({
prodid: {
    type: String,
    required: true
},
title: {
    type: String,
    required: true
},
manufacturer: {
    type: String,
    required: true
},
category: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'category'
},
status: {
    type: String,
    default: 'In Stock'
},
coverImage: {
    type: Buffer,
    required: true
},
coverImageType: {
    type: String,
    required: true
}

},{timestamps:true});

const CategorySchema = new Schema({
title: {
    type: String,
    required: true
}

},{timestamps:true});

常量Category=mongoose.model(“Category”,CategorySchema);

module.exports=类别;

const issue_detail = (req, res) => {
Issue.find().sort({ createdAt: -1})
.populate('product category')
.then((issue) => {
        res.render('products/issue/details', {
            issue: issue,
          })
})
.catch((err) => {
    console.log(err);
})

};

提前谢谢你!

共有1个答案

龙新荣
2023-03-14
const issue_detail = (req, res) => {
Issue.find().sort({ createdAt: -1})
.populate({path : 'product', populate : {path : 'category'}})
.then((issue) => {
        res.render('products/issue/details', {
            issue: issue,
          })
})
.catch((err) => {
    console.log(err);
})

参考:http://mongoosejs.com/docs/populate.html#deep-populate

 类似资料:
  • 当数据存储在多个集合中时,如何显示配置文件的详细数据 尝试了此链接 预期的结果将来自数据应该获取的所有集合,但使用我的代码,它给出的结果直到specialty,但在此之后,它只打印ObjectID

  • 问题内容: 是否可以将多个不同的s 存储到一个中?这是结构,我想存储在中。 这是我要设置并放入其中的代码 使用此代码仅使用我在JSON object Override中设置的所有对象的最后一个值。有什么建议可以做到这一点? 问题答案: 我找到了JSON的很好链接:http : //code.google.com/p/json- simple/wiki/EncodingExamples#Exampl

  • 问题内容: 我想在Cloud Firestore中定义这两个集合。一些示例数据如下所示: 播放清单: 名称:“ playlist1” songCount://要实时计算 歌曲: 标题:“ song1” playlistId:“ playlist1” 标题:“ song2” playlistId:“ playlist1” 标题:“ song3” playlistId:“ playlist1” 此外,

  • 问题内容: 我有一个文件,其中包含要在R中使用的1500个json对象。我已经能够将数据作为列表导入,但是在将其强制转换为有用的结构时遇到了麻烦。我想创建一个数据框,其中每个json对象包含一行,每个key:value对包含一列。 我用这个小的假数据集重新创建了我的处境: 数据的一些功能: 所有对象都包含相同数量的key:value对,尽管某些值是null 每个对象有两个非数字列(名称和组) 名称

  • 我有一个数据结构,其中一个主题有许多问题(一对多),一个问题有许多答案(一对多)。 我已经在主题表单中设置了问题作为嵌入式集合,由于有了烹饪书条目,我可以百分之百地解决所有问题。 当我试图开发它以在问题表单中嵌入一组答案表单时,我遇到了一个问题。 包含顶层原型表单的数据原型属性具有表单的全部深度,因此包括问题和答案的原型。但它对每个级别使用相同的占位符。 你可以在底部看到一条很长的线,我想这就是原