【发布时间】:2021-10-29 18:43:15
【问题描述】:
我正在跟踪集合中的一些作业。每个作业都有一个名称和一个状态。我想强制任何给定名称只能有一个状态为“ACTIVE”的工作。在其他州可以有许多同名的工作,但在 ACTIVE 中只有一个。
我正在使用 Java 和 Spring Data。
我试过了:
IndexFilter onlyActive = PartialIndexFilter.of(Criteria.where("state").is("ACTIVE"));
mongoTemplate.indexOps(DownloadJob.class)
.ensureIndex(
new Index().on("name", Sort.Direction.ASC).partial(onlyActive).unique()
);
当我插入具有相同名称和不同非活动状态的文档时,我仍然会遇到重复键异常。有什么想法可以实现吗?
【问题讨论】:
标签: mongodb spring-data