Из документа, имеющего два поля, например «player_1» и «player_2». Я хотел бы объединить их, объединив их как неидентифицированное поле. Следующим шагом будет подсчет количества раз, когда значение появляется независимо от одного поля или другого. Например:Объединить два поля в одном массиве
{
_id : ObjectId("52f0795a58c5061aa34d436a"),
"game_id": 765
"player_1" : 1,
"player_2" : 2
}
Would приводит к:
{
"game_id": 765,
"player" : 1
},
{
"game_id": 765,
"player" : 2
}
Поскольку эти поля не являются массивами, я не нашел решение агрегировать их таким образом.
Например следующая команда агрегации не понимает, я tryining для извлечения полого документа
[
{ $project: {
game_id: true,
player: { $setUnion: [['$player_1'], ['$player_2']] } }
},
{ $unwind: '$player' }
]
и результатов:
{
"game_id": 765,
"player": "$player_1"
},
{
"game_id": 765,
"player" : "$player_2"
}