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

MongoDB动态字段名查询:如何在运行时替换查询字段

解决方案

你可以利用JavaScript的计算属性名特性实现动态字段名查询,直接在对象字面量中用方括号包裹参数变量即可。

修改后的代码如下:

async getTrack(id, type: keyof Track): Promise<Track[]> {
  // 用计算属性名动态生成查询条件的键
  const query = this.trackModel.find(
    { [type]: id },
    { _id: 0 }
  ).limit(100);
  return query;
}

补充说明

  • 计算属性名[type]会把变量type的实际值作为对象的键名,完全满足你“运行时替换字段名”的需求。
  • 如果你用TypeScript,建议把type的类型约束为keyof Track,这样能在编译阶段校验传入的字段名是否属于Track类型的合法属性,避免无效查询。
  • 若不需要TypeScript的类型校验,保留type: string也可正常运行,只是缺少类型安全保障。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:30:47