Я использую Spring Boot 2.1.3.RELEASE и MongoDB.Мне нужно обновить список в документе и получить счетчик этого списка в одном запросе.
Пример документа:
@Data
public class Company {
@Id
private String id;
private List<String> departments;
}
Запрос на обновление:
mongoTemplate.updateFirst(query(where("_id").is("companyId")),
new Update().pull("departments", "IT"),
"companyCollection");
Запрос на подсчет:
final Aggregation aggregation = newAggregation(
match(where("_id").is("companyId")),
project()
.and("departments")
.size()
.as("count")
);
Он должен быть атомарным.Есть ли способ добиться этого?