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