parsingjson到Mongoose模式

我的mongoose模式:

const BillSchema = new Schema({ fromDate: { type: Date, default: Date.now }, toDate: { type: Date, default: Date.now }, phoneNumber: { type: String }, created: { type: Date}, user: { type: Schema.ObjectId, ref: 'User' }, billDetail: [{ type: Schema.Types.ObjectId, ref: 'BillDetail' }] }); const BilldetailSchema = new Schema({ amount: { type: Number }, item: { type: Schema.ObjectId, ref: 'Item' }, created: { type: Date, default: Date.now }, user: { type: Schema.ObjectId, ref: 'User' } }); const ItemSchema = new Schema({ name: { type: String}, code: { type: String}, amount: { type: Number }, created: { type: Date, default: Date.now }, user: { type: Schema.ObjectId, ref: 'User' } }); 

我的Json从客户端获得

 { billDetail: [ { item: [Object], amount: 1, rentalPrice: 11, rentalDays: 1 } ], code: '000001', customerName: 'steve', phoneNumber: '959494949', fromDate: '2017-05-07T17:00:00.000Z', toDate: '2017-05-18T17:00:00.000Z' } 

我怎样才能parsingJSONstring上面的帐单对象? 我尝试使用这个代码:

 let bill = new Bill(req.body); 

但它不工作,它只是返回账单,但不是billdetails。

billDetail应该是一个ID数组,而不是对象。

您可以先插入账单细节,获取他们的ID,然后推送他们到一个新的billDetail数组。

 BillDetail.insertMany(req.body.billDetail) .then(function(billDetails) { const billDetail = billDetails.map(billDetail => billDetail._id); const billData = Object.assign({}, req.body, { billDetail }); const bill = new Bill(billData); }) .catch(function(err) { // error handling here });