Mongoose.js永远不会通过设置保存字段

有没有什么办法可以标记一个字段没有修改mongoose?

我有一个mongoose模式:

var schema = mongoose.Schema({ field : { type : String } , fieldGenerated : { type : [String] } }); 

我想要使fieldGenerated从不通过model.set( ... )

它应该设置的唯一方法是在预存中间件:

 schema.pre( 'save', function( next ) { // Any way to mark fieldGenerated as NOT modified here? // I only want to set fieldGenerated if field was set. // I don't want fieldGenerated to be set any other way. if ( this.field && this.isModified( 'field' ) ) { this.fieldGenerated = this.field.split( ' ' ); this.markModified( 'fieldGenerated' ); } next(); } 

有什么办法可以做到这一点?

不是直接的,但是如果只是在修改了字段的情况下重新生成,那又怎么样呢?

 schema.pre( 'save', function( next ) { if ( this.field && ( this.isModified( 'field' ) || this.isModified( 'fieldGenerated' ) ) { this.fieldGenerated = this.field.split( ' ' ); } next(); }