Não é o ponto documentado mais claro. Você precisa de uma representação diferente dos
Fields
object aqui para definir sua condição de campo múltiplo corretamente:Aggregation aggregation = newAggregation(
match(criteria),
unwind("kademeler"),
match(criteria),
group(
Fields.from(
Fields.field("name1", "kademeler.isemirleri.isemriKaynagi.name"),
Fields.field("name2", "kademeler.isemirleri.isemriSebebi.name")
)).count().as("etkilenenAboneSayisi")
);
Isso está usando o
Fields.field
definição que tem um "nome" e um "destino" para que seja interpretado corretamente. O uso de strings simples resultará apenas na ação padrão de remover tudo até o último "ponto" no nome do campo e, de acordo com seu erro, ambos são a mesma coisa. Especificar neste formulário informa ao construtor como você deseja que ele seja tratado adequadamente. Que basicamente serializa o
$group
Como:{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Que é o que você quer.