【问题标题】:Creating mongoose schema that contains array of Objects创建包含对象数组的猫鼬模式
【发布时间】:2019-02-20 12:46:29
【问题描述】:

如何创建具有以下结构的猫鼬模式

 {
       data: {
        name: "John doe",
        attributes: [
          {
            text: "Sample text",
            created_at: "2018-08-23"
         },
        {
            text: "Sample text 2",
            created_at: "2018-08-23"
         }
        ],
       created_at: "2018-08-23"
     }
}

【问题讨论】:

    标签: express mongoose mongoose-schema mongoose-models


    【解决方案1】:

    这可以简单地使用对象数组来完成,而不是创建新模式。我不知道优化是否有一些影响。

        attributes: [{
        text: String,
        created_at: Date
    }], 
    

    这是遵循 Mongoose 官方文档的。

    【讨论】:

      【解决方案2】:

      你可以试试这个

      const sampleSchema = new mongoose.Schema({
          data: {
              type: dataSchema
          }
      });
      
      const dataSchema = new mongoose.Schema({
          name: String,
          attributes: [attributeSchema],
          created_at: Date
      });
      
      const attributeSchema = new mongoose.Schema({
          text: String,
          created_at: Date
      });
      

      【讨论】:

      • 试过了,但是 created_at 没有反映
      • 根据您的要求更改类型。你可以使用Date.now()
      • 根据 Mongoose 文档,mongoose 有一个时间戳属性,可以自动生成时间戳mongoosejs.com/docs/guide.html#timestamps。我的问题是时间戳被应用到主对象而不是对象数组。
      • 我错过了 dataSchema 中的一个属性。我已经更新了sn-p。立即尝试 sn-p。
      猜你喜欢
      • 2021-11-04
      • 2018-11-30
      • 2019-10-30
      • 2016-03-09
      • 2012-04-22
      • 2020-03-18
      • 2017-08-18
      • 2019-08-21
      • 1970-01-01
      相关资源
      最近更新 更多