0
mongoose SubDocumentsを再帰的に使用できますか?モンゴースのサブ文書の可能な奥行き
var Player = {
city: {
energy: {
solar: 20,
fusion: 0
}
}
};
と対応するスキーマ: 私は、このオブジェクト持って
var PlayerSchema = new Schema({
city: CitySchema
});
PlayerSchema.pre('save', function(next){
this.city = {};
});
var EnergySchema = new mongoose.Schema({
solar: {type: Number, default: 0},
fusion: {type: Number, default: 0}
});
var CitySchema = new mongoose.Schema({
last_update: { type: Date, default: Date.now },
energy: EnergySchema
});
CitySchema.pre('save', function (next) {
this.energy = {};
});
をしかし、このオブジェクトを保存することは、エネルギーなしで唯一の都市を節約できます。 (コマンドthis.city = {};
とPlayerSchema.pre('save', ...)
がデフォルト値ではなく、都市の未定義のエネルギー属性につながるノート方法CitySchema.pre('save', ...)
に取ることなくCitySchemaからオブジェクトを作成している時に。)
私がのObjectIdを通じて参照を投入して作っ避けたいです。
サブオブジェクトだけでPlayerオブジェクトを保存することはできますか?
'this.city = {};'の後のPlayerでは、mongooseはスキーマのデフォルト値で新しいCityを正しく作成します。後者の 'console.log'の出力は' {lastUpdate: '2017-03-08 ...'} 'となります。問題は、この属性 'EnergySchema from CitySchema'が欠落していることです。メソッド 'CitySchema.pre(' save '、...);がPlayerSchema.pre(' save '、...の間に呼び出されないためです。 ); ' – James07