我在将数据从数组对象保存到 MongoDB 数据库时遇到问题。我有带有嵌入子文档的主文档的架构。主文档和所有其他子文档的保存均成功,但子文档是数组除外。
正如您从屏幕截图中看到的,子文档中的字段没有保存到数据库中。
Robo 3T 的屏幕截图 https://i.stack.imgur.com/iX5qY.png
任何帮助将非常感激。谢谢!
请求对象示例:
{
"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
}
]
}
}
Schema:
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);
}