sql >> データベース >  >> NoSQL >> MongoDB

$condを含む集約をJavaのDBObjectに変換します

    Mongo Java 2.13バージョンでは、以下の集計クエリを使用できます。一部の操作を簡略化しました。

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

    3.xバージョンの場合、以下の集計を使用できます。

     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. 自動インクリメントフィールドの作成方法

    2. MongoDB C#Aggregation-unwind-> groupBy

    3. mongodbデータベースをエクスポート/ダンプするにはどうすればよいですか?

    4. phpドライバーmongodb、ロードされません