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(); }