Nicht der klarste dokumentierte Punkt. Sie benötigen eine andere Darstellung der Fields
Objekt hier, um Ihre Mehrfeldbedingung richtig zu definieren:
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")
);
Das verwendet das Fields.field
Definition, die einen "Namen" und ein "Ziel" hat, damit sie richtig interpretiert wird. Die Verwendung von einfachen Zeichenfolgen führt nur dazu, dass alles bis zum letzten "Punkt" im Feldnamen entfernt wird, und gemäß Ihrem Fehler sind beide dasselbe. Die Angabe in diesem Formular teilt dem Bauherrn mit, wie es ordnungsgemäß gehandhabt werden soll.
Was im Grunde die $group
serialisiert als:
{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Was Sie wollen.