混合コンテナ内に格納されているスキーマのメソッドにアクセスしようとしています。状況は次のとおりです。さまざまなケースモデルがあり、「caseContent」混合プロパティに格納されているこれらの各ケースのスキーマがあります。
var CaseSchema = mongoose.Schema({
caseContent : {},
object : {type:String, default : "null"},
collision : {type : Boolean, default : false}
});
次に、caseContentプロパティは、次の例のように、私のスキーマの1つのモデルで埋められます。
var TreeSchema = new mongoose.Schema({
appleCount : {type : Number, default : 3}
});
TreeSchema.methods.doStuff = function (data) {
console.log('Hey, listen');
return true;
};
次に、元のコンテナのスキーマのメソッドを使用します。
CaseSchema.methods.doStuff = function (data) {
if (this.caseContent.doStuff !== undefined) {
this.caseContent.doStuff();
console.log('it worked');
} else {
console.log('doStuff is undefined');
console.log(this.caseContent.doStuff);
}
};
初めて(すべてがデータベースに追加されたとき)、それは機能します。その場合、caseContent.doStuffは常に未定義のように見えます(console.log('doStuff is undefined');が毎回表示されます)。
ですから、おそらくコンテナのタイプが混在しているために、そのメソッドを呼び出せないことがあると思います...その回避策はありますか?