嵌套数组 JSON 的 Mongoose 模型
Posted
技术标签:
【中文标题】嵌套数组 JSON 的 Mongoose 模型【英文标题】:Mongoose Model for Nested Array JSON 【发布时间】: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]
)
【问题讨论】:
看看***.com/questions/28166463/…和***.com/questions/18317284/mongoose-extending-schemas 【参考方案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);
【讨论】:
以上是关于嵌套数组 JSON 的 Mongoose 模型的主要内容,如果未能解决你的问题,请参考以下文章