【问题标题】:Building Mongoose Schema with indeterminate number of nested objects使用不确定数量的嵌套对象构建 Mongoose Schema
【发布时间】:2016-08-04 22:31:42
【问题描述】:

1.仪表板菜单数据示例:

const dashboards = [
  {"dashboard": "sample",
    "items": [
      { "title": "Title 1" },
      { "title": "Title 2",
        "items": [
          { "title": "Title 2-1",
            "items": [
              { "title": "Title 2-1-1" },
              { "title": "Title 2-1-2" }
            ]
          },
          { "title": "Title 2-2" }
        ]
      },
      { "title": "Title 3",
        "items": [
          { "title": "Title 3-1" },
          { "title": "Title 3-2",
            "items": [
              { "title": "Title 3-2-1" },
              { "title": "Title 3-2-2" }
            ]
          }
        ]      },
      { "title": "Title 4",
        "items": [
          { "title": "Title 4-1" },
          { "title": "Title 4-2",
            "items": [
              { "title": "Title 4-2-1" },
              { "title": "Title 4-2-2",
                "items": [
                  { "title": "Title 4-2-2-1" },
                  { "title": "Title 4-2-2-2" }
                ]              
              }
            ]
          }
        ]      
      }
  ]}
];

2。我的架构尝试:

    const DashboardMenuSchema = new Schema({
      title: {type: String},
      items: [{
        title: String
      }]
    }, { _id: true });

    DashboardMenuSchema.add({ items: [DashboardMenuSchema.items] });

我的架构没有按预期工作。

满足和不确定数量的菜单项的正确方法是什么?

提前感谢您的帮助。

【问题讨论】:

    标签: mongoose mongoose-schema


    【解决方案1】:

    事实证明这很简单......

    const ItemSchema = new mongoose.Schema({
      title: {type: String},
    });
    
    
    export const DashboardMenuSchema = new mongoose.Schema({
      title: {type: String},
      items: [ItemSchema]
    }, { _id: true });
    
    DashboardMenuSchema.add({ items: [DashboardMenuSchema.items] });
    

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 2017-10-03
      • 1970-01-01
      • 2021-05-06
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      相关资源
      最近更新 更多