【发布时间】:2019-10-08 12:46:41
【问题描述】:
我有一个属性为
的 Pojo Class A{
@Id
@Field("item_id")
private String itemId;
}
当我尝试根据 itemId 更新 MongoDB 集合中的文档时,它运行良好,并且能够从 mongo ops 日志中看到查询已转换为“itemIds 中的_id”
Query query = new Query(Criteria.where("itemId").in(itemIds));
Update update = new Update();
update.set("field2", "abd");
mongoTemplate.updateMulti(query, update, A.class)
当我升级到 spring-data-mongodb-2.1.5.RELEASE 时,我在 mongo 日志中看到的查询是“item_id in itemIds”。由于 item_id 不是字段并且集合中没有该字段的索引,因此查询需要很长时间才能完成。
任何帮助理解为什么 spring-data 库在旧版本中将查询构建为 _id 并在新版本中使用该字段?
【问题讨论】:
标签: spring-boot spring-data spring-data-mongodb