Использовать агрегацию для обновления в Spring Data MongoDB - PullRequest
0 голосов
/ 26 марта 2020

Есть ли способ использовать конвейер агрегации в Spring Data MongoDB update query?

Предположим, я хочу установить значение firstName в fullName поле для пользователей без lastName. Собственный запрос выглядит следующим образом:

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

Это выполнимо с помощью Spring Data?

1 Ответ

0 голосов
/ 26 марта 2020

AggregationUpdate будет частью Spring 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"));
...