列出MongoDB中的类别,然后将每个类别中的项目作为<li>列表列出

时间:2018-12-20 12:22:47

标签: node.js mongodb mongoose handlebars.js

我只能显示第一个类别中的所有项目,而不能显示所有类别以及每个类别下的标题。第二个类别要么出现在第一个类别下,要么所有“项目”都只出现在第一个类别下。

我正在设置MongoDB服务器,以列出我可以租用的产品,分为五个类别:“相机”,“照明”,“镜头”,“音频”和“其他”。我想让页面呈现每个类别,然后使用按钮模板下拉列表来列出该类别下的每个项目。 (只需尝试在此步骤之前先将列表排成一行)

我这样做是为了让我将来可以扩展到其他类别,并使页面动态更新。

车把HTML(equipment.hbs):

<span id="content">
    <div class="row">
        <div class="container col-md-12">        
        {{# each category }}         
        <button class="collapsible">{{ this.category }}</button>         
        {{/each}}
        <div class="content">
            <p>{{# each product.title}}<li><a href="">{{ this.product.title }}</a></li>{{/each}}</p>                            
        </div>
    </div>
    <hr>
</span>

项目架构:(/models/item.js)

var mongoose = require('mongoose');

var Item = mongoose.model('Item', {
  category: {
    type: String,
    minlength: 1,
    trim: true,
    required: true,
  },
  product: {
    title: {
      type: String,
      minlength: 1,
      trim: true,
      required: true
    },
    quantity: {
      type: Number,
      default: 1,
      required: true
    },
    added: {
      type: Date,
      default: Date.now
    },
    description: {
      type: String,
      minlength: 1,
      trim: true,
      required: true
    }
  }
});

module.exports = {Item};

当前,每个类别中均不显示任何项目,以前,我所有项目都出现在第一个类别中。

感谢您的帮助。

编辑:示例JSON数据

{
    "product": {
        "quantity": 1,
        "title": "Sony PMW-F5",
        "description": "Sony PMW-F5",
        "added": "2018-12-20T11:56:25.603Z"
    },
    "_id": "5c1b83697130cd0348d1bbd5",
    "category": "Camera",
    "__v": 0
}

0 个答案:

没有答案