Как сохранить данные из объекта массива в MongoDB - PullRequest
0 голосов
/ 09 июня 2018

У меня возникла проблема с сохранением данных из объекта массива в базу данных 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);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...