Bukan poin terdokumentasi yang paling jelas. Anda memerlukan representasi berbeda dari Fields
objek di sini untuk mendefinisikan beberapa kondisi bidang Anda dengan benar:
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")
);
Itu menggunakan Fields.field
definisi yang memiliki “nama” dan “target” sehingga dapat ditafsirkan dengan benar. Menggunakan string biasa hanya akan menghasilkan tindakan default untuk menghapus semuanya hingga "titik" terakhir dalam nama bidang, dan sesuai kesalahan Anda, keduanya adalah hal yang sama. Menentukan dalam formulir ini memberi tahu pembuat bagaimana Anda ingin menanganinya dengan benar.
Yang pada dasarnya membuat serial $group
sebagai:
{ "$group": {
"_id": {
"name1": "$kademeler.isemirleri.isemriKaynagi.name",
"name2": "$kademeler.isemirleri.isemriSebebi.name"
},
"etkilenenAboneSayisi": { "$sum": 1 }
}}
Yang Anda inginkan.