如何使用body-parser将嵌套对象数组插入/添加到使用nodejs和mongoose的mongodb数据库中

我正在尝试向mongo数据库插入数据。 我正在用mongoose做这个。 我已经创build了像下面的mongoose Schema

 const countrySchema = mongoose.Schema({ country_id: { type : Number, required: true, unique : true }, country_name : { type : String, required : true, unique : true }, country_description : { type : String, required : true, unique : true }, country_currency : { type : String, required : true, unique : true }, country_capital : { type : String, required : true, unique : true }, country_numberof_districs : { type : Number, required : true }, country_createdat : { type : Date, required : true }, country_districs : { districs : [ { distric_id : { type : Number, // required : true, }, distric_name : { type : String, // required : true, }, distric_description : { type : String, // required : true, }, distric_famous_for : { type : String, // required : true } } ] } }); 

下面是我的发布方法 –

 router.post('/addcountry', (request, response, next) => { const district = []; district.push({ distric_id: request.body.distric_id, distric_name : request.body.distric_name, distric_description : request.body.distric_description, distric_famous_for : request.body.distric_famous_for }); let newCountry = new country({ country_id : request.body.country_id, country_name : request.body.country_name, country_description : request.body.country_description, country_currency : request.body.country_currency, country_capital : request.body.country_capital, country_numberof_districs : request.body.country_numberof_districs, country_createdat : new Date(), country_districs : { districs : [district] } }); country.addCountry(newCountry, (err, country) =>{ console.log('came here'); if(err){ response.json({ success : false, message : 'failed to add country' + err }); }else { response.json({ success : true, message : 'country added successfully' }); } }); }); 

我与Postmantesting。 它工作正常,没有districs一部分。 我试图发布下面的对象 –

 { "country_id" : 909773, "country_name" : "USA", "country_description" : "UNITED STATRE", "country_currency" : "USD", "country_capital" : "NEWYORK", "country_numberof_districs" : 100, "country_districs": { "districs": [ { "distric_id": 777, "distric_name" : "melbourne", "distric_description" : "no des", "distric_famous_for" : "beaches" }, { "distric_id": 900, "distric_name" : "sydney", "distric_description" : "no des", "distric_famous_for" : "beaches" } ] } } 

结果就是这样 –

 { "_id" : ObjectId("58e37b5c3c6b07153600a7f6"), "country_id" : 909773, "country_name" : "USA", "country_description" : "UNITED STATRE", "country_currency" : "USD", "country_capital" : "NEWYORK", "country_numberof_districs" : 100, "country_createdat" : ISODate("2017-04-04T10:54:20.726Z"), "country_districs" : { "districs" : [ { "_id" : ObjectId("58e37b5c3c6b07153600a7f7") } ] }, "__v" : 0 } 

:首先我尝试了一个地区,但也没有工作。 我怎样才能添加这个分区对象(可以有很多像分区数组一样),以及如何遍历所有的分区对象。 希望你的帮助。

你能尝试一下这个国家吗?

 let newCountry = new country({ country_districs : { districs : req.body.country_districs.districs } }); 

以及其余的领域…