我困惑的是,爲什麼貓鼬是不是救了我的對象:貓鼬不節能嵌套對象
var objectToSave = new ModelToSave({
_id : req.params.id,
Item : customObject.Item //doesn't save with customObject.getItem() neither
});
不過是節約這一點;如低於或與硬編碼值:
var objectToSave = new ModelToSave({
_id : req.params.id,
Item : {
SubItem : {
property1 : customObject.Item.SubItem.property1, //also saves with customObject.getItem().SubItem.getProperty1()
property2 : customObject.Item.SubItem.property2
}
}
});
的getter/setter方法是
MyClass.prototype.getItem = function(){ ... };
我的項目目標是比較大的,我寧願沒有指定每一單個子屬性...
當我用console.log(customObject.Item)查看我的Item對象時,或者當我通過API將它作爲JSON返回時,它具有我期待的所有嵌套屬性(SubItem,...)。
項目被定義爲:
SubItem = require('SubItemClass.js');
function MyClass(){
this.Item = {
SubItem : new SubItem()
}
}
與子作品或定義爲
function SubItem(){
this.property1 = '';
this.property2 = 0;
}
的模式似乎按預期方式工作,因爲如果我硬編碼的數據,如果我指定的每一個屬性來保存到型號,我可以將數據保存到型號...
無論如何,這裏是代碼:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var subItemDefinition = {
Property1 : {type:String},
Property2 : {type:Number},
};
var itemDefinition = {
SubItem : subItemDefinition
};
var customDefinition = {
Item : itemDefinition
};
var customSchema = new Schema(customDefinition);
module.exports = mongoose.model('ModelToSave', customSchema);
感謝您的幫助
你是如何定義的'ModelToSave'的模式。它看起來像來自這裏的類型不匹配。你可以編輯你的問題,包括這個請。 –
它看起來像是無法訪問customObject.Item,因此我必須將其分解爲所有子屬性的原因... 當我從POST中保存數據時,我使用與上面相同的代碼結構,即只定義要保存的模型對象以及其更高級別的屬性,如「Item:req.body.Item」 – user1144446