Není to nejjasněji zdokumentovaný bod. Potřebujete jinou reprezentaci Fields
objekt zde, abyste správně definovali podmínku více polí:
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")
);
To znamená pomocí Fields.field
definice, která má „jméno“ a „cíl“, aby byla správně interpretována. Použití prostých řetězců bude mít za následek výchozí akci odstranění všeho až do poslední "tečky" v názvu pole a podle vaší chyby jsou obě to samé. Zadáním v tomto formuláři sdělíte tvůrci, jak chcete, aby se s ním správně zacházelo.
Což v podstatě serializuje $group
jako:
{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Což je to, co chcete.