mongoose模式中的常量属性值

我有a属性总是等于1的模式。我find了一个解决scheme,但我不喜欢它:

 var schema = new Schema({ a: Number }); schema.pre('save', function(){ this.a = 1; }); 

你能告诉我是否有更好的方法来做到这一点? 例如:

 var schema = new Schema({ a: 1 }); 

如何使用默认值,它达到你想要的?

var schema = new Schema({ a: {type: Number, default: 1} });

如果你想强制它, pre版是最好的select。

另一种方法是使用虚拟财产 。 虚拟文件是您可以获取和设置的文档属性,但不会保留到MongoDB。 相反,您可以指定一个getter函数,每次访问属性时都会调用getter函数:

 schema.virtual('a').get(function () { return 1; }); 

现在,每个schema文档都有一个等于1的属性a 。 但请注意,因为虚拟不会被持续,所以你不能查询它们。