mongo / mongoose中是否有一个lib或方法可以模拟更新查询的结果,并让我知道最终结果将是什么,以及是否修改了字段/路径,所以
>const currentModel = new AwesomeLib({
car: {
make: 'nissan',
model: 'leaf',
colour: 'white',
tags:[ 'electric' ]
},
driver: {
name: 'mino',
status: 'happy'
}
});
currentModel.update({
car: {
model: 'altima',
year: 2018
},
$set: {
driver: {
status: 'sad'
},
'car.tags.1': 'plug in'
}
});
/*
this should result in an object that looks like this:
{
car: {
make: 'nissan',
model: 'altima',
colour: 'white',
year: 2018,
tags:[ 'electric', 'plug in' ]
},
driver: {
status: 'sad'
}
}
*/
currentModel.isModified('driver.name'); // true
currentModel.isModified('driver'); // true
currentModel.isModified('car'); // true
currentModel.isModified('car.colour'); // false
currentModel.isModified('car.tags'); // true
答案 0 :(得分:0)
您可以在猫鼬中使用前置钩子来实现此目的。代码就是这样
Schema.pre('update', function(done) { //be sure not to use an arrow function.
this.isModified('password');
} else {
return done();
}
});