Search code examples
node.jsmongodbmongooseschemasubdocument

How to assign "null" or "undefined" for a property with children , in mongoose


I want to make the "address" property "null" or "undefined" if I haven't initialized it in mongoose. I have tried to initialize it to a null value but didn't work.

var userSchema = new Schema({
    name: { type: String, default: null },
    address: {
      number: { type: String, default: null },
      route: { type: String, default: null },
      areaInner: { type: String, default: null },
      areaOuter: { type: String, default: null },
      country: { type: String, default: null }
    }
},{timestamps:true});

var User = mongoose.model('users', userSchema);

var newUser = User({
        name: name,
        address:null
});

newUser.save();

Solution

  • You have to define an other schema for "address":

    var addressSchema = new Schema({
      number: {type: String, default: null},
      ...
    }); 
    
    var userSchema = new Schema({
      name: {type: String, default: null},
      address: {type: addressSchema, default: null}
    });