如何使用TypeORM通过ObjectId查询MongoDB文档?
在TypeORM中无需安装完整MongoDB包即可通过ObjectId查询文档
你完全不需要安装完整的mongodb包来处理ObjectId查询,TypeORM本身就提供了对应的解决方案:
使用TypeORM内置的
ObjectID类
TypeORM的MongoDB驱动模块已经内置了ObjectID实现,直接从typeorm包导入即可,无需额外安装mongodb:import { ObjectID } from "typeorm"; // 按_id查询示例 const targetDoc = await this.repository.findOne({ where: { _id: new ObjectID("6419695f7a702e2211d88c07") } });直接传入符合格式的字符串(简化写法)
对于基础查询(如findOne、find),TypeORM会自动将符合ObjectId格式的字符串转换为ObjectID类型,所以也可以直接写:const targetDoc = await this.repository.findOne({ where: { _id: "6419695f7a702e2211d88c07" } });注意:复杂查询场景(如聚合管道操作)可能需要显式使用
ObjectID实例,自动转换不一定生效。为什么不用装完整MongoDB包
TypeORM的MongoDB驱动已经封装了查询所需的核心类型(包括ObjectID),旧教程里要求安装mongodb包的做法已经过时,现在完全不需要依赖整个数据库包来完成基础的_id查询。
内容的提问来源于stack exchange,提问作者Jeanluca Scaljeri
相关产品推荐
相关产品推荐

