我是一个刚接触JavaScript和Mongoose的新手。我得到了一种设计有些奇怪的JSON格式,我想通过mongoose来持久化它。
以下是此JSON的示例:
{name : "a_string", a1 : {something : 'a_number', something_else : 'a_number'}, a2 : {...} }
a1,a2 是变量(不一定总是有 a1 和 a2,可能还有其他的)。 something,something_else 也是变量,可以是不同的标识符 -它们是属性。
也许这是我设计一个奇怪的 JSON 的错,但最好的定义它的模式的方法是什么?
我有各种选择,但都没有说服我:
Schema {
myJSON : []
}
这很丑陋,但现在我可以将我的JSON存储为myJSON[0] = {name: "theName"...}。当然这是最丑陋的方式,但是它是我发现的最接近原始数据结构的方式。
另一个例子。
json Schema {
name: String,
parts: [part]
}
part Schema {
name : String,
props : [prop]
}
prop Schema {
name : String,
value : Numeric
}
这看起来更美观,但我发现有几个问题,最终的JSON会有许多数组和间接引用,这在原始JSON中并没有:
{name :"a_string", parts:[{name : "a1",
props : [{name : "something", value: 'a_number'}]},{...}]}
有没有办法从架构中删除所有这些烦人的数组?
更新:
最终我解决了我的问题,因为我对数据模型进行了一些调整:
var mySchema = new Schema({
name : String
, valid : Boolean
, parts : {}
});
然后“props”包含了我想要的所有JSON(除了名称放在外面)。这不是我原本想要的方式,但它还可以(我想)。