我想保存带有数组列表的文档,但它无法按我想要的方式工作。我正在使用带有 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/