gpt4 book ai didi

javascript - mongodb 在嵌套容器中找不到我的模式方法

转载 作者:行者123 更新时间:2023-12-02 19:00:09 26 4
gpt4 key购买 nike

我正在尝试访问存储在混合容器内的模式的方法。情况如下:我有一些案例模型,它们可以是许多不同的东西,所以我有一个存储在“caseContent”混合属性中的每个东西的模式。

var CaseSchema = mongoose.Schema({
caseContent : {},
object : {type:String, default : "null"},
collision : {type : Boolean, default : false}
});

然后,caseContent 属性将填充我的模式之一的模型,例如:

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'); 每次都会出现)。

所以我认为有一些东西阻止我调用该方法,可能是因为容器的混合类型......有什么解决方法吗?

最佳答案

您可以尝试使用此架构类型Schema.Types.Mixed

var CaseSchema = mongoose.Schema({
caseContent : Schema.Types.Mixed,
object : {type:String, default : "null"},
collision : {type : Boolean, default : false}
});

关于javascript - mongodb 在嵌套容器中找不到我的模式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14867239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com