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

如何使用TypeOrm在MongoDB中通过ID数组批量查询文档?

解决方案

你的问题出在误用了ArrayContains操作符——它是用来查询数组类型字段是否包含指定元素/数组的,但你的myId是单个字符串类型,完全不匹配这个场景。

要实现单次查询匹配多个ID的需求,应该使用TypeORM提供的In操作符,它专门用来处理「字段值在指定列表中」的查询逻辑。

修正后的代码

import { In } from 'typeorm';

function (ids: string[]): Promise<User[]> {
  return this.repository.find({
    where: {
      myId: In(ids)
    }
  })
}

为什么这个方案可行?

  • In(ids)会生成MongoDB的$in查询语句,一次性匹配所有myId属于ids数组的文档
  • 相比你用Promise.all循环查询的方式,单次查询能大幅减少数据库请求次数,性能更优

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:54:53