Non è il punto più chiaro documentato. Hai bisogno di una rappresentazione diversa dei Fields
oggetto qui per definire correttamente la condizione di campo multiplo:
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")
);
Questo sta usando Fields.field
definizione che ha un "nome" e un "target" in modo da essere interpretata correttamente. L'uso di stringhe semplici comporterà solo l'azione predefinita di rimuovere tutto fino all'ultimo "punto" nel nome del campo e, secondo il tuo errore, sono entrambi la stessa cosa. Specificando in questo modulo si dice al costruttore come si desidera che venga gestito correttamente.
Che fondamentalmente serializza il $group
come:
{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Qual è quello che vuoi.