您可以使用聚合框架来实现这一点:
db['02'].aggregate(
[
// Stage 1
{
$facet: {
// facet pipeline 1
kw123:[
{$project: {input:"$Input-Section.keyword1_keyword2_keyword3"}},
{$unwind: {path : "$input"}},
{$sort: {"input.Probability": -1}},
{$limit: 1},
{$project: {"Output-Section":"$input.Output-Section",_id:0 }},
],
// facet pipeline 2
kw456:[
{$project: {input:"$Input-Section.keyword4_keyword5_keyword6"}},
{$unwind: {path : "$input"}},
{$sort: {"input.Probability": -1}},
{$limit: 1},
{$project: {"Output-Section":"$input.Output-Section",_id:0 }},],
}
},
// Stage 2
{
$project: {
results:{$setUnion:["$kw123.Output-Section","$kw456.Output-Section"]}
}
},
],
);
结果是:
{
"results" : [
"reply_option_2",
"reply_option_3"
]
}
如果您有其他字段,如keyword1\u keyword2\u keyword3,只需复制和更新facetpline,并将新字段添加到结果中。
希望有帮助。