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

MongoDBSpringDataで複数のファセットを使用する

    .and()を使用して、複数のファセット操作を連鎖させることができます および.as() メソッド。 2番目のfacetを置き換える必要があります andを使用したメソッド 以下の方法。

    FacetOperation facets = facet(match(where("entryType").is(EntryType.DEBIT)
            .andOperator(where("currentStatus").is(TransactionStatus.CONFIRMED))),
            unwind("history"),
            match(where("history.status").is(TransactionStatus.CONFIRMED)),
            project().andExpression("history.amount").as("historyAmount"),
            group().sum("historyAmount").as("total"),
            project("total")
    ).as("totalConfirmedDebits"),
            /*
                     * Summarize Confirmed Credits 
             */
    .and(match(where("entryType").is(EntryType.CREDIT)
            .andOperator(where("currentStatus").is(TransactionStatus.CONFIRMED))),
            unwind("history"),
            match(where("history.status").is(TransactionStatus.CONFIRMED)),
            project().andExpression("history.amount").as("historyAmount"),
            group().sum("historyAmount").as("total"),
            project("total")
    ).as("totalConfirmedCredits")
    



    1. 集約フレームワークでオブジェクトを$unwindします

    2. MongoDBで1つのデータベースから別のデータベースにコレクションをコピーする方法

    3. MongoDB-コード48でシャットダウン

    4. Javaを使用してMongoDBでドキュメントの一括更新を実行するにはどうすればよいですか?