【问题标题】:Mongoose Model for Nested Array JSON嵌套数组 JSON 的 Mongoose 模型
【发布时间】:2017-09-26 08:52:25
【问题描述】:

我需要为下面的嵌套 JSON 数组创建一个 Mongoose 模型。我面临的问题是 TLSM01 是一个动态密钥,我无法在模型中指定它。如果我单独提及实体并将所有 json 对象作为字符串传递,它将存储为 [object] 而不是数据。

 "entities": [
        {
          "TLSM01": [
            {
              "01": {
                "Name": "Light",
                "Properties": [
                  {
                    "state": [
                      {
                        "type": "boolean",
                        "propertyMode": "actuator"
                      }
                    ],
                    "brightness": [
                      {
                        "type": "integer",
                        "propertyMode": "actuator"
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }

猫鼬模型:

var thingsSchema = ({
    "uuid": String,
    "things": String,
    "manufacturerName": String,
    "manufacturerId": String,
    "osName": String,
    "hardwareVersion": String,
    "firmwareVersion": String,
    "entity": [{String}]
})

【问题讨论】:

标签: json node.js mongodb


【解决方案1】:

将数据存储在键值对中

"entities": [
  {
    keyName:'TLSM01',
    data: [
      {
        "01": {
          "Name": "Light",
          "Properties": [
            {
              "state": [
                {
                  "type": "boolean",
                  "propertyMode": "actuator"
                }
              ],
              "brightness": [
                {
                  "type": "integer",
                  "propertyMode": "actuator"
                }
              ]
            }
          ]
        }
      }
    ]
  }
]

猫鼬模型:

var thingsSchema = ({
    "uuid": String,
    "things": String,
    "manufacturerName": String,
    "manufacturerId": String,
    "osName": String,
    "hardwareVersion": String,
    "firmwareVersion": String,
    "entity": [{_id:false,keyName:{type:String},data:[]}]
})

【讨论】:

    【解决方案2】:

    1.我认为你需要这样的结构: 2.查看光值如何是一个数组...在对象内 - 必须在 Mongo 中使用键值配对并确保您的模型 Json 对象可以映射到您的 mongoose 数据库 - 因此您使用您的数据模型来输入数据 - 所以这个如果你增加它应该可以工作..

    const blogSchema = new Schema({
      
    name:{
        type:String,
        require: true
      },
    heat:{
        type:Number,
        Require:true
      },
    moisture:{
        type:Number,
        Require:true
      },
    light:{
        green:{type:Number, Require:true},
        red:{type:Number, Require:true},
        blue:{type:Number, Require:true},
        white:{type:Number, Require:true}
      },
    body:{
        type:String,
        require: true
      }
    },{timeStamps:true});
    

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多