Привет,
Вопрос по агригациям в Монго:
Есть две коллекции: settings и runtime
В settings след. структура:
{
"*projectNickName*": "**Proj_А**",
"*flowVersion*": "**1**",
"stages": [{
"*stageNickName*": "**AA**",
"reference": [{
"stageNickName": "АA1",
"operator": "**TBT**"
},
{
"stageNickName": "АA2",
"operator": ""
},
{
"stageNickName": "АA3",
"operator": ""
}
]
},
{
"stageNickName": "AB",
"reference": [{
"stageNickName": "АB1",
"operator": ""
},
{
"stageNickName": "АB2",
"operator": ""
},
{
"stageNickName": "АB3",
"operator": ""
}
]
}
]
}
В runtime след. структура:
{
"flowInstanceID": "662314cb-4a5d-49d5-986e-7ee84aba8ac4",
"*projectNickName*": "**Proj_A**",
"*flowVersion*": **1**,
"*flowInstanceStatus*": "**STARTED**",
"runTime": [
{"stageNickName": "AA","stageInstanceStatus":"WAITING" },
{"stageNickName": "AB","stageInstanceStatus":"COMPLETED" }
]
}
Мне нужно сделать inner join (SQL) между по двум полям: projectNickName и flowVersion, и отобрать те runtime с flowInstanceStatus=STARTED, в которых есть runTime такой stageNickName у которого в settings в массиве reference есть хотя бы один oerator=TBT
Нужно ли более подробно описать или и так понятно?
В принципе, можно это решить без агригаций через код, но так намного производительние.
Можно ли это сделать с помощью агригации?
Заранее спасибо!
Яаков.