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

如何获取通过GridFS流式上传至MongoDB的文档_id?

获取GridFS流式上传文件的_id方法

当然可以拿到目标文件的_id,方法很直接:bucket.openUploadStream()返回的GridFSBucketWriteStream实例本身就带有id属性,而且这个属性在流创建时就已经生成,无需等待上传完成。

方法一:直接获取

先将上传流赋值给变量,直接访问其id属性即可:

const uploadStream = bucket.openUploadStream('myFile.pdf');
// 直接拿到文件ID
const fileId = uploadStream.id;
readableStream.pipe(uploadStream);

方法二:上传完成后获取

如果需要在文件上传完成后再处理ID,可以监听流的finish事件:

const uploadStream = bucket.openUploadStream('myFile.pdf');
readableStream.pipe(uploadStream);

uploadStream.on('finish', () => {
  const fileId = uploadStream.id;
  // 这里执行上传完成后的逻辑,比如存储ID、返回给前端等
  console.log('文件上传完成,ID为:', fileId);
});

补充说明:这个id对应GridFS中fs.files集合里文档的_id,默认是MongoDB的ObjectId类型;如果创建流时通过第二个参数自定义了ID(如bucket.openUploadStream('myFile.pdf', { id: '自定义ID' })),则拿到的是你设置的自定义ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:15:33