Ikke det klarest dokumenterede punkt. Du skal bruge en anden repræsentation af Fields
objekt her for at definere din tilstand med flere felter korrekt:
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")
);
Det er ved at bruge Fields.field
definition, som har et "navn" og et "mål", så det fortolkes korrekt. Brug af almindelige strenge vil blot resultere i standardhandlingen med at fjerne alt indtil den sidste "prik" i feltnavnet, og i henhold til din fejl er disse begge de samme ting. Angivelse i denne formular fortæller bygherren, hvordan du ønsker det skal håndteres korrekt.
Som dybest set serialiserer $group
som:
{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Hvilket er, hvad du ønsker.