以下是架构

const mongoose = require("mongoose");

const PatientFluidSchema = new mongoose.Schema(
  {
    patient: {
      type: mongoose.Schema.Types.ObjectId,
      ref: "Pateint",
      required: true,
    },
    medicine: [
      {
        medicinename: {
          type: String,
     
        },
        fluidquantity: {
          type: String,
          
        },
        fluidtakentime: {
          type: String,
          
        },
      },
    ],
  },
  {
    timestamps: true,
  }
);
module.exports = mongoose.model("PateintFluid", PatientFluidSchema);

我是NodeJS的新手,我被这个问题困住了.如何使用INSERTMANY查找具有患者ID的One并在医学中插入多个值

推荐答案

要将一个对象添加到medicine数组中,可以将findOneAndUpdate$push运算符一起使用,如下所示:

const patientId = req.body.patientId;
const update = await PatientFluidModel.findOneAndUpdate(
    {
        patient: patientId,
    },
    {
        $push: {
            "medicine": {
               medicinename: 'A', 
               fluidquantity: 'B', 
               fluidtakentime: 'C'
            }
        }
    }, {new: true});

或者,如果要添加多个对象,可以使用$push$each的组合,如下所示:

const object1 = {medicinename: 'A', fluidquantity: 'B',fluidtakentime: 'C'};
const object2 = {medicinename: 'D', fluidquantity: 'E',fluidtakentime: 'F'};
const object3 = {medicinename: 'X', fluidquantity: 'Y',fluidtakentime: 'Z'};
const patientId = req.body.patientId;
const update = await PatientFluidModel.findOneAndUpdate(
    {
        patient: patientId,
    },
    {
        $push: {
            "medicine": {
               $each: [object1, object2, object3]
            }
        }
    }, {new: true});

你可以从官方文档中找到更多关于$push$each的信息.

Edit:为了帮助您解决上传多个药物的问题,您可以在您的AddDailymedicine函数中执行以下操作:

const medecines = [];
for(let i =0; i < req.body.medicinename.length; i++){
  medecines.push({
    medicinename: req.body.medicinename[i],
    fluidquantity: req.body.fluidquantity[i], 
    fluidtakentime: req.body.fluidtakentime[i],
  });
}

这将在medecines个局部作用域数组中创建多个对象.然后只需在您的$each中使用扩散系统,如下所示:


   $each: [...medecines]

Node.js相关问答推荐

如何在node.js中以随机顺序调用函数并按顺序操作

在 NodeJS 中使用 post 时出现错误 500TypeError: 无法解构 'req.body' 的属性 'name',因为它未定义

当API返回400状态代码时,使用Reactjs fetch获取错误消息

在 Docker 容器内创建一个 cron 作业(job)来执行 run.js 文件中的函数

等待不在 Express.js 中处理 res.app.render

为什么 client.on("messageCreate") 的 TextChannel 中缺少 nsfw 属性?

node-gyp: "..\src\binding.cc: 没有这样的文件或目录"

在 nodejs 中使用 multer 上传文件返回未定义的 req.file 和空的 req.body

为什么 $or 在带有正则表达式的mongoose 中不能正常工作

MongoDB Atlas中的聚合触发器不起作用

Pug - 包括带有include关键字的c代码

ISODate 未定义

Node.js 支持 =>(箭头函数)

ChildProcess 关闭、退出事件之间的区别

TypeError:请求路径包含未转义的字符,我该如何解决这个问题

为什么 Node 控制台不显示功能代码?

node.js 模块和函数中this的含义

我应该如何在 webpack 中使用时刻时区?

使用 Monit 而不是基本的 Upstart 设置有什么好处?

大型项目的 NodeJS vs Play 框架