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

如何在MongoDB中以字段a的值为投影属性名获取对应值

MongoDB动态字段投影查询方案

你可以通过MongoDB聚合管道实现该需求,兼容MongoDB 4.2及以上版本,完整查询语句如下:

// 请将collection替换为你实际使用的集合名
db.collection.aggregate([
  {
    $replaceRoot: {
      newRoot: {
        $mergeObjects: [
          // 保留原始_id字段
          { _id: "$_id" },
          // 提取a字段值对应的键值对
          {
            $arrayToObject: {
              $filter: {
                input: { $objectToArray: "$$ROOT" },
                cond: { $eq: ["$$this.k", "$a"] }
              }
            }
          }
        ]
      }
    }
  }
])

逻辑说明

  • $objectToArray: "$$ROOT":将当前完整文档转换为键值对数组,每个元素格式为{k: "字段名", v: "字段值"}
  • $filter:过滤上述数组,仅保留键名等于当前文档a字段值的元素
  • $arrayToObject:将过滤后的单元素键值对数组转回JSON对象
  • $mergeObjects:将_id字段和提取出的动态键值对合并为最终输出的文档

运行上述语句后,输出结果完全符合你给出的预期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:27:04