使用mongoose取消设置嵌套字段

时间:2014-08-08 05:21:09

标签: mongodb mongoose

Herehere是取消设置某些字段的解决方案,除非它们是嵌套的。当我尝试以下内容时,“null”将被保存在字段中而不是取消设置。我怎样才能让它发挥作用?

PostSchema = new Schema({
title : String
, slug : String
, publish : {
    done : {type:Boolean, default:false}
    , on : Date
    , by : ObjectId
  }
, created : Date
, ...
});


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

if(!this.isNew && this.isModified('publish') && !this.publish.done) {
 //console.log('OK I am going to unset publish.on, publish.by ');
 this.publish.on = undefined;
 this.publish.by = undefined;
}

// do some other stuffs
next();

});

修改

我得到了以下日志:

Mongoose: posts.update({ _id: ObjectId("53e3695289469b7136000033") }) { '$set': { lastModifiedOn: new Date("Fri, 08 Aug 2014 06:47:06 GMT"), publish: { done: false, on: undefined, by: undefined } } } {}

0 个答案:

没有答案