Spring Boot + MongoDB:在一个查询中更新并获取大小

时间:2019-06-18 13:27:38

标签: mongodb spring-boot

我正在使用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")
    );

它必须是原子的。有没有办法做到这一点?

0 个答案:

没有答案