Niet het duidelijkst gedocumenteerde punt. U heeft een andere weergave nodig van de Fields
object hier om uw conditie met meerdere velden correct te definiëren:
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")
);
Dat is het gebruik van het Fields.field
definitie die een "naam" en een "doel" heeft, zodat deze correct wordt geïnterpreteerd. Het gebruik van gewone tekenreeksen resulteert gewoon in de standaardactie om alles te verwijderen tot de laatste "punt" in de veldnaam, en volgens uw fout zijn deze beide hetzelfde. Specificeren in dit formulier vertelt de bouwer hoe u wilt dat het correct wordt afgehandeld.
Wat in feite de $group
. rangschikt als:
{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Dat is wat je wilt.