在预保存回调中确定记录是不是“新”

Posted

技术标签:

【中文标题】在预保存回调中确定记录是不是“新”【英文标题】:Determine if a record "is new" in the pre save callback在预保存回调中确定记录是否“新” 【发布时间】:2012-08-19 00:52:25 【问题描述】:

有没有办法在猫鼬模型模式的预保存回调中找出记录是否“是新的”(尚未保存)?

【问题讨论】:

【参考方案1】:

是的,模型实例上有一个 isNew 布尔属性表明了这一点。从您的预保存中间件以this.isNew 的身份访问它。

【讨论】:

pre('update' 是否有类似的指标。我使用UserModel.update(filter, newUser, upsert:true, new:true, (err, user) ->,想知道它是新文档还是修改了现有文档。【参考方案2】:
var MySchema = new Schema(...);

MySchema.pre('save', function(next) 
    if (this.isNew) 
        // Hooray !
    
    next();
);

【讨论】:

以上是关于在预保存回调中确定记录是不是“新”的主要内容,如果未能解决你的问题,请参考以下文章

M1 11.6 上的 VSCode v1.62.2 未在预保存的工作区上启动调试器

Rails ActiveRecord 在 after_save 回调中使用最近保存的记录 ID [关闭]

如何确定VB.net中是不是已经存在记录?

神奇的记录 - 上下文(不保存)

Erlang判断记录是不是有字段

在 CakePHP 中保存新的关联记录