猫鼬4.1设置器不适用于ObjectID字段

时间:2018-10-29 22:37:42

标签: mongoose mongoose-schema

我有类似的架构:

let fixClassID = (_this)=>{
 if(Object.keys(_this).length >= 2)
    if(_this.hasOwnProperty('_id'))
        _this = new mongoose.Types.ObjectId(_this['_id'])
 return _this
}

var student = new Schema({
    name: {type: String},
    class: { type: Schema.Types.ObjectId,  ref: 'class', set: fixClassID}
})

var school = new Schema({
    name: {type: String},
    students: [student],
})

school.pre('save', function(next) {

    //Here I got Error AND OLD OBJECT :(
})

在前端发送给我的情况下,已更改的对象BUT具有填充的类字段,例如:

class: {_id: mongodID , name: "Chemestry"}

我只需要进行更新“ _id”,并且需要在setter中而不是在控制器中进行。这只是一个例子。我有带有嵌套数组的更复杂的对象。

class: {_id: mongodID , name: "Chemestry"}

class: mongodID

我做错了什么?

P.S。使用“字符串”字段,一切正常...

0 个答案:

没有答案