如何在预更新的mongoose中间件中访问文档对象?

时间:2017-05-05 10:56:46

标签: node.js mongodb mongoose

考虑一下,我有像这样的猫鼬模式

const mySchema = new mongoose.schema({
val1:Number,
val2:Number
val_1_isBigger:Boolean})

现在我要比较val1和amp;每次更新操作之前的val2,因此我想为val_1_isBigger设置布尔属性。

我的问题是如何在预先('更新')mongoose插件操作期间访问文档对象。请看以下示例

mySChema.plugin(function(schema, options) {
    schema.pre('update', function(next) {

//Here How Do I compare val1 & val2 before update happens
//and then set value here accordingly

  this.update({}, { $set: { val_1_isBigger: true/false } });

}
}

1 个答案:

答案 0 :(得分:0)

我所做的是使用_conditions参数来获取具有Query的id的文档。然后,使用该文档,您可以执行必要的操作,然后使用_update将新对象设置为更新。 我的代码如下所示:

 **Processor Scientific Analysis
    Analysing...
    Aggregated Score : 5.99GFLOPS
    Result ID : Intel(R) Celeron(R) CPU 3965U @ 2.20GHz (2C 2.21GHz, 2x 256kB L2, 2MB L3)
    Speed : 2208MHz
    Capacity : 2Unit(s)
    Finished Successfully : Yes**

我希望它有所帮助。