MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menerapkan grup pada dokumen bersarang di MongoDB menggunakan MongoTemplate?

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);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. kesalahan mongoDB:Kesalahan:gagal terhubung ke [localhost:27017]

  2. MongoDB tidak menangani agregasi dengan allowDiskUsage:True

  3. Agregasi MongoDb kesalahan $match :Argumen harus berupa operator pipa agregat

  4. mongoDB Ganti nama bidang yang disematkan

  5. Bagaimana sesi connect-mongo MongoStore sebenarnya disimpan?