node.js - 如何在 mongoose 中创建创建路由来创建数组列表

标签 node.js mongodb mongoose

我想保存带有数组列表的文档,但它无法按我想要的方式工作。我正在使用带有 Mongoose 的nodejs。

这是我的代码:

clinMedExamRouter.post("/clin_exam_med", (req, res, next) => {
  async function newData() {
    const data = new ClinicasMedicosExames({
      clinicaId: req.body.clinicaId,
      medico: [
        {
          medicoId: req.body.medicoId
        }
      ]
    });

    try {
      const result = await data.save();
      console.log("Operação realizada com sucesso");
      console.log(req.body);
      res.status(201).send({ message: "Cadastrado com sucesso!" });
    } catch (erro) {
      console.log(erro.message);
      res.status(406).send({ message: "Cadastro falhou" });
    }
  }

  newData();
});

这是我的模型:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const ClinicaMedicoExameSchema = new Schema(
  {
    clinicaId: {
      type: mongoose.Schema.Types.ObjectId,
      ref: "clinicas"
    },
    medico: [
      {
        medicoId: {
          type: mongoose.Schema.Types.ObjectId,
          ref: "medicos"
        }
      }
    ],
    exame_consulta: [
      {
        exameConsultaId: {
          type: mongoose.Schema.Types.ObjectId,
          ref: "exames_consultas"
        }
      }
    ]
  },
  {
    timestamps: true
  }
);

module.exports = mongoose.model("clin_exam_med", ClinicaMedicoExameSchema);

有人可以帮我解决这个问题吗? 预先感谢您。

最佳答案

最简单的解决方案是使用 Model.create 方法。您只需要使用与您的架构类似的请求正文。

此外,无需在 route 定义函数。

clinMedExamRouter.post("/clin_exam_med", async (req, res) => {
  console.log(req.body);
  try {
    const result = await ClinicasMedicosExames.create(req.body);
    console.log("Operação realizada com sucesso");
    res.status(201).send({ message: "Cadastrado com sucesso!" });
  } catch (erro) {
    console.log(erro.message);
    res.status(406).send({ message: "Cadastro falhou" });
  }
});

关于node.js - 如何在 mongoose 中创建创建路由来创建数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59487613/

相关文章:

arrays - MongoDB - 选择一个没有父数组的数组

javascript - DefineCall 不是函数,sequelize 错误

json - 从第三方到 Meteor 集合的 "mirror"JSON 数据的最佳方式

javascript - Expressjs 静态压缩不是压缩 css 或 Javascript

node.js - 使用 Node.js、Express.js 和 gridfs-stream 将文件直接流式传输到 GridFS

javascript - Mongoose 忽略对象的一部分,除非定义为 Schema.Types.Mixed

node.js - 如何在 Mongoose 中聚合和分组

javascript - Mongoose - 删除选定的元素

node.js - NPM:不推荐使用存在同步

javascript - 异步/等待 - Node - Express - Mongo