从过滤结果匹配中获取值

get value from a filter result match

如何获取返回的 $filter 匹配项的值?

例如使用此代码...

db.col.aggregate([
    {$project : {
        "Place"    : {$filter: {input: "$fields",as: "field",cond: { $eq: [ "$$field.name", "ABC" ]}}},
    }}
]);

我会得到

[{"name":"ABC" ,"value":"DEF"}]

作为 Place 的值。我想知道如何获得值 (DEF)

感谢 Yogesh 的评论,弄明白了

db.col.aggregate([
    {$project : {
        "Place"    : {$filter: {input: "$fields",as: "field",cond: { $eq: [ "$$field.name", "Place" ]}}},
    }},
    {$project : {
        "Place"    : {$arrayElemAt : ["$Place.value",0]}
    }}
]);

..想知道是否有单投影的方法。