Data Musim Semi MongoTemplate
kode untuk agregasi yang diberikan adalah sebagai berikut.
Perhatikan bahwa saya telah menambahkan proyek panggung sebelum grup . Proyek This ini Dibutuhkan; jika kolom bertingkat ("details.student._id" dan "details.studentStatus.statusCode") digunakan langsung dalam grup tahap ada kesalahan "FieldPath field names may not contain '.'."
dan tidak dapat diselesaikan (dan ini hanya terjadi bila Anda menggunakan lebih dari satu bidang dalam pengelompokan).
Hasilnya sama dengan agregasi yang Anda berikan. Saya telah menggunakan driver Spring dan MongoDB terbaru dengan Java 8.
MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "spr_test");
Aggregation agg = newAggregation(
unwind("details"),
project("_id")
.and("details.student._id").as("sid")
.and("details.studentStatus.statusCode").as("statuscode"),
group("sid", "statuscode")
.count().as("total")
);
AggregationResults<Document> aggResults = mongoOps.aggregate(agg, "students", Document.class);
aggResults.forEach(System.out::println);