2016-03-07 91 views
0

我工作的一个项目,我有以下猫鼬架构模型对象:猫鼬不创建数组

module.exports = mongoose.model('Env', { 
    name : {type : String, default: ''}, 
    services: [ServiceAddress] 
}); 

module.exports = mongoose.model('ServiceAddress', { 
    serviceId : {type : ObjectId}, 
    address: {type: String} 
}); 

我试图更新它有一个空的现有的“信封”的文件“服务”阵列。

router.put('/api/env', function(req, res, next) { 
    var env = new Environment(req.body); 
    env.save(function(err, updated){ 
     if (err){ 
      res.send(err); 
     } 
     res.json(updated); 
    }); 
}); 

的req.body内容是:

{ 
    _id: "56dd26a6618c1b983d5bada6", 
    name: "Test Drive" 
    services: [{_id: "56dc6e385fb0b038241d3399", address: "11"}, {_id:  "56dc6e595fb0b038241d339a", address: ""}] 
} 

但结果在DB是(仅ID被推):

"services" : [ { "_id" : ObjectId("56dc6e385fb0b038241d3399") }, { "_id" : ObjectId("56dc6e595fb0b038241d339a") } 

任何想法?

感谢

回答

0

请尝试用下面的代码片段

var serviceSchema = { 
    serviceId : {type : ObjectId,required: false}, 
    address: {type: String,required: false} 
}; 
// added so that new _id field is not added when object is pushed in array 
serviceSchema = 'new Schema('+serviceSchema +',{_id:false})'; 

module.exports = mongoose.model('Env', { 
    name : {type : String, default: ''}, 
    services: [serviceSchema], default:[], 
}); 

感谢