【问题标题】:Depends on query change document in mongoose pre('update')取决于 mongoose pre('update') 中的查询更改文档
【发布时间】:2016-12-15 17:32:17
【问题描述】:

我想在每次使用{active: true} 更新模型时更改lastActiveAt 字段。我有这样的事情:

MySchema.pre('update', function(next) {
  if (this._compiledUpdate.$set.active) {
    this.update({}, {lastActiveAt: new Date()});
  }
  next();
});

// ...

MyModel.update({/* ... */}, {active: true});

它有效,但我不喜欢_compiledUpdate 中的下划线。有没有推荐的方式来访问 pre('update') 中间件中的查询?

【问题讨论】:

    标签: javascript node.js mongodb mongoose middleware


    【解决方案1】:

    您可以尝试this.getUpdate()方法获取更新查询:

    MySchema.pre('update', function(next) {
      if (this.getUpdate().$set.active) {
        this.update({}, {lastActiveAt: new Date()});
      }
      next();
    });
    

    参考:https://github.com/Automattic/mongoose/issues/2812

    【讨论】:

      猜你喜欢
      • 2018-11-17
      • 1970-01-01
      • 2013-02-16
      • 2020-07-16
      • 2011-12-07
      • 2015-04-27
      • 2017-02-28
      • 1970-01-01
      • 2013-07-15
      相关资源
      最近更新 更多