Я перемещаю запрос Mongodb с Javascript на Java.Формат объекта следующий:
{
"record": {
"unknownName1": {
"count": 5,
"domain": "domain1"
}, {
...
}, {
"unknownNameN": {
"count": 3,
"domain": "domainN"
}
}
}
Запрос Javascript имеет следующую часть:
[
{
$project: {
record: {
$objectToArray: "$record"
}
}
}, {
$unwind: { "$record"
}, {
$group: {
device: "$record.k"
},
count: {
$sum: "$record.v.count"
},
domain: {
$min: "$record.v.domain"
}
}
]
Я перевел вышеприведенное использование API-интерфейса Mongodb Java Driver 3 и получил следующее:
List<Bson> query = Arrays.asList(
project(include("record")),
unwind("$record"),
group(computed("device", "$record.k"),
sum("count", "$record.v.count"),
min("domain", "$record.v.domain"))
);
Проблема, с которой я столкнулся, заключается в том, что я не могу найти эквивалент $ objectToArray с использованием драйвера Mongodb Java, а последующие операции sum и min зависят от того, как точка оперирует сгенерированными значениями k и v.от использования $ objectToArray.
Существует ли эквивалентный способ сопоставления объекта с неизвестными именами ключей в формате k и v, используемом $ objectToArray, с использованием драйвера Mongodb Java Driver, предпочтительно версии 3 +?