gpt4 book ai didi

javascript - Mongoose.js 从不通过 Set 保存字段

转载 作者:行者123 更新时间:2023-11-30 06:38:45 24 4
gpt4 key购买 nike

有什么方法可以在 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();
}

关于javascript - Mongoose.js 从不通过 Set 保存字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com