簡體   English   中英

依賴於貓鼬pre('update')中的查詢更改文檔

[英]Depends on query change document in mongoose pre('update')

我想在每次使用{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')中間件中是否存在建議的訪問查詢的方法?

您可以嘗試使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM