mongodb - MongoDB 动态评估字段名称
问题描述
我有一个示例文档
{
field1: 'a',
field2: 'b',
field3: 'c',
field4: 'd',
field5: 'field1'
}
如何在 mongodb 查询中使用 field5 我正在寻找 field5 中字段的值(类似于 document[ field5[field1] ] )
解决方案
这个如何?
db.collection.aggregate([
{
$set: {
result: {
$filter: {
input: { $objectToArray: "$$ROOT" },
cond: { $eq: ["$$this.k", "field5"] }
}
}
}
},
{ $project: { result: { $first: "$result.v" } } }
])