我有一个具有ObjectId属性的模型,恰好是一个数字。它被称为设备,而我想要做的是当要保存此类文档时,我想从mongo中检索设备文档并用它替换设备属性。 这是模式:
var DataSchema = new Schema({
device: Device.schema
});
并且在创建对象时,设备包含id(它是一个数字):
{device: 1}
然后我查找设备并用预验证中间件中的适当对象替换:
DataSchema.pre('validate', function(next) {
var data = this;
Device.findById(data.device, function(err, dev) {
if (err) {
next(err);
} else {
data.device = dev;
}
next();
});
});
但是由于某些原因未定义data.device。 为什么会这样?