У меня возникла проблема с сохранением данных из объекта массива в базу данных MongoDB.У меня есть схема для основного документа со встроенными вложенными документами.Сохранения для основного документа и всех других вложенных документов прошли успешно, за исключением вложенного документа, который является массивом.
Как видно из скриншота, поля из вложенных документов не сохраняются в базе данных.
Screencap от Robo 3T
Любая помощь будет высоко ценится.Спасибо!
Пример объекта запроса:
{
"incidentNumber": "IN1001",
"status": "New"
"Approval": {
"approvers": [
{
"approverType": "Asset Management",
"approverName": "Bob",
"approvalDate": 1234
},
{
"approverType": "HR",
"approverName": "Janet",
"approvalDate": 1234
},
{
"approverType": "Finance",
"approverName": "Bill",
"approvalDate": 1234
}
]
}
}
Схема:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const approvalSchema = new Schema(
{
approvers: [
{
approverType: {
type: String
},
approverName: {
type: String
},
approvalDate: {
type: Date
}
}
]
}
);
const headerSchema = new Schema(
{
incidentNumber: {
type: String,
required: true,
unique: true
},
status: {
type: String,
required: true,
enum: ['Completed', 'Draft', 'New', 'Pending', 'Submitted']
},
approval: [approvalSchema]
},
{ timestamps: true }
);
Код сервера:
let incidentNumber: "IN1001";
let status: "New";
app.post('/create-incident', (req, res) => {
const header = new Header({
incidentNumber: incidentNumber,
status: status,
approval: [
{
approvers: [
{
approverType: req.body.Approval.approvers.approverType,
approverName: req.body.Approval.approvers.approverName,
approvalDate: req.body.Approval.approvers.approvalDate
}
]
}
]
});
});
header
.save()
.then(Header => {
res.status(200).send(Header);
})
.catch(e => {
res.status(400).send(e);
}