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

如何通过MongoDB查询将_id转为字符串类型的id字段返回

在MongoDB查询阶段将_id转换为字符串类型的id字段(原生MongoDB驱动)

直接用聚合管道就能在查询阶段完成转换,不用在JavaScript里额外处理返回对象。修改后的代码如下:

const _id = new ObjectId(id);
const [event] = await db.collection('events').aggregate([
  { $match: { _id } },
  { $addFields: { id: { $toString: '$_id' } } },
  { $project: { _id: 0 } }
]).toArray();

代码说明:

  • 用aggregate替代findOne,通过聚合管道实现字段转换逻辑
  • $match阶段:和原代码逻辑一致,匹配目标_id
  • $addFields阶段:新增id字段,利用$toString操作符把ObjectID类型的_id直接转换为字符串
  • $project阶段:排除原_id字段,避免结果里同时存在原_id和新的id
  • 最后通过toArray()拿到结果数组,取第一个元素就是目标文档

注意:$toString操作符要求MongoDB版本4.0及以上,如果你使用的是更早版本,可以用$concat配合$substrBytes实现转换:

{ $addFields: { id: { $concat: [{ $substrBytes: ['$_id', 0, 24] }] } } }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 16:02:07