JavaScriptとマングースはかなり新しいです。私はマングースを介して永続化したい少し奇妙なデザインのJSONで終わりました。
これは、このJSONの例です。
{name : "a_string", a1 : {something : 'a_number', something_else : 'a_number'}, a2 : {...} }
a1、a2は可変です(常にa1もa2も存在しない、おそらく他の存在もあります) 何か、something_elseも可変であり、異なる識別子にすることができます-それらはプロパティです-。
たぶん、そのような奇妙なJSONを設計するのは私のせいですが、そのスキーマを定義する最良の方法は何でしょうか?
私にはさまざまな選択肢がありますが、どちらも私を納得させません:
Schema {
myJSON : []
}
これは非常に醜いですが、JSONをmyJSON [0] = {name:"theName"...}として保存できるようになりました。Ofcは最も醜いですが、私が見つけた元のデータ構造に最も近いものです。
もう1つ
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が含まれます(名前が外部に配置されている場合を除く)。これは私が考えていた方法ではありませんが、うまく機能します(私は思います)。