首页 > 解决方案 > MongoDB 动态评估字段名称

问题描述

我有一个示例文档

{
  field1: 'a',
  field2: 'b',
  field3: 'c',
  field4: 'd',
  field5: 'field1'
}

如何在 mongodb 查询中使用 field5 我正在寻找 field5 中字段的值(类似于 document[ field5[field1] ] )

标签: mongodb

解决方案


这个如何?

db.collection.aggregate([
   {
      $set: {
         result: {
            $filter: {
               input: { $objectToArray: "$$ROOT" },
               cond: { $eq: ["$$this.k", "field5"] }
            }
         }
      }
   },
   { $project: { result: { $first: "$result.v" } } }
])

推荐阅读