访问mongoose.Schema.methods中的“选择:假”字段

时间:2019-01-08 05:40:31

标签: mongodb mongoose

以一个玩具示例为例,假设我具有以下模式:

const ExampleSchema = new mongoose.Schema({
  publicField: String,
  privateField: { type: String, select: false }
});

ExampleSchema.methods.doSomething = async function() {
  console.log(this.privateField); // undefined
}

如何在privateField函数中访问doSomething

还是有更好的方法来实现这一目标?

1 个答案:

答案 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"