2

フィールドをマングースで変更されていないとマークする方法はありますか?

私はマングーススキーマを持っています:

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

これを達成する方法はありますか?

4

1 に答える 1

0

直接ではありませんが、フィールドが変更された場合にフィールドを再生成するだけではどうでしょうか。

schema.pre( 'save', function( next ) {
    if ( this.field && ( this.isModified( 'field' ) || this.isModified( 'fieldGenerated' ) ) {
        this.fieldGenerated = this.field.split( ' ' );
    }
    next();
}
于 2012-10-19T15:55:46.087 に答える