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

Biến tổng hợp bao gồm $ cond thành DBObject trong java

Bạn có thể sử dụng truy vấn tổng hợp bên dưới cho phiên bản Mongo Java 2.13. Tôi đã đơn giản hóa một số thao tác.

 List<DBObject> aggregates = Arrays.asList(new BasicDBObject("$project", new BasicDBObject("dt", "$dt").
            append("mc", "$mc").
            append("uplift", "$uplift").
            append("baseAvg", "$baseAvg").
            append("baseUp", new BasicDBObject("$add", Arrays.<Object>asList("$uplift", "$baseAvg"))).
            append("share", new BasicDBObject("$cond", Arrays.<Object>asList(new BasicDBObject("$eq", Arrays.<Object>asList("$baseAvg", 0)),
                    0, new BasicDBObject("$divide",  Arrays.<Object>asList("$uplift", "$baseAvg")))))));

Đối với phiên bản 3.x, bạn có thể sử dụng tổng hợp bên dưới.

 MongoClient mongoClient = new MongoClient();
 MongoDatabase db = mongoClient.getDatabase("db");
 MongoCollection<Document> collection = db.getCollection("collection");
 Bson aggregates = Aggregates.project(Projections.fields(Projections.include("dt", "mc", "uplift","baseAvg"),
               new Document("baseUp", new Document("$add", Arrays.<Object>asList("$uplift", "$baseAvg"))),
               new Document("share", new Document("$cond", Arrays.<Object>asList(new Document("$eq", Arrays.<Object>asList("$baseAvg", 0)),
                                        0, new Document("$divide",  Arrays.<Object>asList("$uplift", "$baseAvg")))))));
 List<Document> results = collection.aggregate(Arrays.asList(aggregates)).into(new ArrayList<>());



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao mongodb của tôi không kết nối với cổng 28017?

  2. MongoDB $ orderBy

  3. MongoDB:Khóa duy nhất trong tài liệu nhúng

  4. truy vấn mongoDB để truy xuất từ ​​bộ sưu tập mảng lồng nhau

  5. Cách xử lý các lệnh gọi lại trong vòng lặp for (Node.JS)