Node.js 猫鼬不';t使用数组创建模型对象
我正在从事一个项目,其中我有以下mongoose模式:Node.js 猫鼬不';t使用数组创建模型对象,node.js,mongoose,Node.js,Mongoose,我正在从事一个项目,其中我有以下mongoose模式: module.exports = mongoose.model('Env', { name : {type : String, default: ''}, services: [ServiceAddress] }); module.exports = mongoose.model('ServiceAddress', { serviceId : {type : ObjectId}, address: {typ
module.exports = mongoose.model('Env', {
name : {type : String, default: ''},
services: [ServiceAddress]
});
module.exports = mongoose.model('ServiceAddress', {
serviceId : {type : ObjectId},
address: {type: String}
});
我正在尝试更新一个现有的“Env”文档,该文档包含一个空的“services”数组
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);
});
});
请求正文内容为:
{
_id: "56dd26a6618c1b983d5bada6",
name: "Test Drive"
services: [{_id: "56dc6e385fb0b038241d3399", address: "11"}, {_id: "56dc6e595fb0b038241d339a", address: ""}]
}
但数据库中的结果是(仅推送ID):
有什么想法吗
谢谢请用下面的代码片段试一试
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:[],
});
谢谢
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:[],
});