$addFields MongoDb中的$match

$addFields MongoDb中的$match,mongodb,match,Mongodb,Match,我正在提取MongoDb收藏,就像我想要的一样,我被困在这里。这是我处理后得到的结果。我需要进一步处理,以便从日志数组中投影相应的stage\u名称,匹配stage\u id { "_id" : { "article_journal" : "jnl_2", "stage_id" : "jnl_2_wf_2", "stage_code" : "review" }, "article_count" : 1.0, "jou

我正在提取MongoDb收藏,就像我想要的一样,我被困在这里。这是我处理后得到的结果。我需要进一步处理,以便从日志数组中投影相应的stage\u名称,匹配
stage\u id

{
    "_id" : {
        "article_journal" : "jnl_2",
        "stage_id" : "jnl_2_wf_2",
        "stage_code" : "review"
    },
    "article_count" : 1.0,
    "journal_title" : "Test Journal",
    "journal" : [ 
        {
            "_id" : ObjectId("5cd10b325586e9122761f675"),
            "jnl_code" : "jnl_2",
            "jnl_title" : "Test Journal",
            "jnl_workflow" : [ 
                {
                    "wf_stages" : [ 
                        {
                            "wf_stage_id" : "jnl_2_wf_1",
                            "wf_stage_code" : "submit",
                            "wf_stage_name" : "Submit",
                        }, 
                        {
                            "wf_stage_id" : "jnl_2_wf_2",
                            "wf_stage_code" : "review",
                            "wf_stage_name" : "Review",
                        }, 
                        {
                            "wf_stage_id" : "jnl_2_wf_3",
                            "wf_stage_code" : "publish",
                            "wf_stage_name" : "Publish",
                        }
                    ]
                }
            ]
        }
    ],
}
结果应该是这样的

{
    "_id" : {
        "article_journal" : "jnl_2",
        "stage_id" : "jnl_2_wf_2",
        "stage_code" : "review"
    },
    "article_count" : 1.0,
    "journal_title" : "Test Journal",
    "stage_name" : "Review"
}
我试过:

{'$addFields':{'stage_name':{
    '$match':{'stage_name':'$journal.[0].jnl_workflow[0].wf_stages.$[i].wf_stage_name'}
    },
    arrayFilters:[{'i.wf_staeg_id':'$_id.stage_id'}]
}} 
但托罗斯是一个错误:

"errmsg" : "Unrecognized expression '$match'",

有人能帮我吗?提前谢谢。

用户$cond而不是$match看看这个,去看看这个对你有用吗$cond在这里不起作用。因为stage\u id是完全动态的,所以我们不能像您所建议的那样硬编码stage\u id@GaurangDhorda@rbvishnu看看这张$map是什么对你有用..结果似乎是一样的,投影阶段代码。我需要得到stage_name@GaurangDhorda