我对 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 的最佳方法是什么?
我有多种选择,但都不能说服我:
Schema {
myJSON : []
}
这非常难看,但现在我可以将我的 JSON 存储为 myJSON[0] = {name: "theName"...}。Ofc 是最丑陋的,但与我的原始数据结构最接近。
另一个
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'}]},{...}]}
有没有办法从 Schema 中删除所有这些烦人的数组?
更新:
最后我解决了我的问题,因为我可以稍微调整我的数据模型:
var mySchema = new Schema({
name : String
, valid : Boolean
, parts : {}
});
然后“道具”包含我想要的所有JSON(名称放在外面)。这不是我的想法,但它工作正常(我认为)。