MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Dữ liệu mùa xuân thiết kế ứng dụng mongodb và tổng hợp dữ liệu

Bất cứ khi nào Spring Data Mongo thiếu AggregationOperation bạn cần (để tái tạo $addFields , $redact ...), một giải pháp thay thế (một số người có thể nói là giải pháp nhanh chóng và bẩn thỉu) là chuyển tập hợp thô cho Spring, sử dụng trực tiếp các công cụ com.mongodb.client:

String collectionName = mongoTemplate.getCollectionName(Payment.class);
MongoCollection<Document> collection = mongoClient.getDatabase(mongoTemplate.getDb().getName()).getCollection(collectionName);

AggregateIterable<Document> ai = collection.aggregate(Arrays.asList(
    Document.parse(/* { "group" : { ... } } */)))

MongoCollection.aggregate () được chuyển qua đường ống tổng hợp dưới dạng List<Document> (thực tế là List<? extends Bson> ở dạng thô như được đề xuất ở trên bằng cách sử dụng Document.parse () và tất nhiên bạn cũng có thể sử dụng new Document() để làm cho nó giống mã OOP thích hợp hơn. Tôi có xu hướng sử dụng biểu mẫu thô khi tổng hợp thô phức tạp hoặc nhiều thành phần lồng nhau cho Tài liệu lồng nhau quá dài đối với tôi, nhưng đó là vấn đề của sở thích.

CẬP NHẬT NĂM 2020.

Sử dụng cách giải quyết này thay vì. Với điều này, thật dễ dàng để sử dụng cả AggregationOperation do Spring cung cấp và các giai đoạn tổng hợp "thô" của riêng bạn ở cùng một nơi.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Angular Google Maps / NodeJS:Hiển thị điểm đánh dấu từ cơ sở dữ liệu

  2. Không đồng bộ, Gọi lại, Đóng cửa, Ôi trời

  3. Làm cách nào để kiểm tra xem một trường mảng có chứa một giá trị duy nhất hay một mảng khác trong MongoDB?

  4. ValueError:Lỗi dữ liệu bổ sung khi nhập tệp json bằng python

  5. Trường $ name phải là một đối tượng tích lũy