【发布时间】:2017-07-28 04:50:54
【问题描述】:
我可以递归使用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 = {};
});
但是拯救这个物体只能拯救没有能源的城市。 (在PlayerSchema.pre('save', ...) 期间,使用命令this.city = {}; 从CitySchema 中使用默认值创建对象,但没有注意方法CitySchema.pre('save', ...) 这会导致城市中未定义的能量属性。)
我想避免通过 ObjectId 填充和进行引用。
是否可以仅使用子文档保存 Player 对象?
【问题讨论】: