You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS/Multer:如何在现有Schema中添加另一个PDF文件

解决方案

首先要确保你的Schema里有一个数组类型的字段来存储多个PDF文件,示例如下:

const yourSchema = new mongoose.Schema({
  // 其他业务字段,比如用户ID、文档名称等
  pdfFiles: [{
    data: Buffer, // 存储PDF二进制数据
    filename: String, // 文件名
    contentType: String // 文件类型,比如'application/pdf'
  }]
});

接下来用$push操作符给目标文档追加新PDF,不会替换原有文件也不会新建集合:

// 假设你要更新的文档有唯一标识documentId
const newPdf = {
  data: pdfBuffer, // 你的PDF二进制缓存
  filename: "new-document.pdf",
  contentType: "application/pdf"
};

// 执行更新:找到目标文档,把新PDF推到数组里
await YourModel.updateOne(
  { _id: documentId }, // 精准定位要更新的文档
  { $push: { pdfFiles: newPdf } }
);

如果需要避免重复添加相同的PDF文件,可以用$addToSet替代$push,只有当数组中不存在该元素时才会添加:

await YourModel.updateOne(
  { _id: documentId },
  { $addToSet: { pdfFiles: newPdf } }
);

关键注意点

  • 必须使用MongoDB的数组更新操作符($push/$addToSet),不能直接赋值pdfFiles: newPdf,否则会覆盖原有的PDF数组
  • 查询条件要精准(比如用_id),避免误更新多个文档
  • 如果目标文档原本没有pdfFiles字段,执行$push后会自动创建该数组字段

内容的提问来源于stack exchange,提问作者Hector Agosto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:06:04