以一个玩具示例为例,假设我具有以下模式:
const ExampleSchema = new mongoose.Schema({
publicField: String,
privateField: { type: String, select: false }
});
ExampleSchema.methods.doSomething = async function() {
console.log(this.privateField); // undefined
}
如何在privateField
函数中访问doSomething
?
还是有更好的方法来实现这一目标?
答案 0 :(得分:0)
您可以在架构定义中为privateField
实例方法正确访问doSomething
。
ExampleSchema
使doSomething
可以使用Model
方法。
this.privateField
引用模型实例的privateField
属性。
可以说有一个Example
模型使用ExampleSchema
定义
const Example = mongoose.model('Example', ExampleSchema);
构造Example
的实例时,它将具有doSomething
方法。
const example = new Example({privateField: 'This is a privateField'});
example.doSomething(); // logs "This is a privateField"