Spring Data MongoDBで更新に集計を使用する

2020-03-26 spring mongodb spring-data-mongodb

Spring Data MongoDB 更新クエリで集約パイプラインを使用する方法はありますか?

lastName持たないユーザーのfullNameフィールドにfirstName値を設定するとします。ネイティブクエリは次のようになります。

db.getCollection("users").update({lastName: ""}, [{ $set: { "fullName" : "$firstName" } }])

Spring Dataを使用して実行できますか?

Answers

AggregationUpdateSpring Data MongoDB 3.0の一部になります。

AggregationUpdate update = AggregationUpdate.update()
    .set("average").toValue(ArithmeticOperators.valueOf("tests").avg())
    .set("grade").toValue(
        ConditionalOperators.switchCases(
            CaseOperator.when(Gte.valueOf("average").greaterThanEqualToValue(90)).then("A"),
            CaseOperator.when(Gte.valueOf("average").greaterThanEqualToValue(80)).then("B"),
            CaseOperator.when(Gte.valueOf("average").greaterThanEqualToValue(70)).then("C"),
            CaseOperator.when(Gte.valueOf("average").greaterThanEqualToValue(60)).then("D"))
        .defaultTo("F"));

Related