gpt4 book ai didi

java - 如何在循环内更新 SpringData MongoDB 文档?

转载 作者:行者123 更新时间:2023-11-30 07:59:42 26 4
gpt4 key购买 nike

我已将 POJO 映射到 SpringData MongoDB 文档

@Document(collection = “cacheVersion” ) 
public class CacheVersionBean {
private boolean active = true;
...

然后我在 MongoDB 中找到该列表,并尝试使用 MongoTemplate 保存修改列表中的 MongoDb 文档:

Query query = new Query().addCriteria(Criteria.where("active").is(true));
List<CacheVersionBean> versionBeans = mongoTemplate.find(query, CacheVersionBean.class);
for (CacheVersionBean cacheVersionBean: versionList)
{
cacheVersionBean.setActive(false);
mongoTemplate.save(cacheVersionBean);
...

但是,此代码不会修改数据库中的文档,而是创建新文档。最简单的更新方法是什么?

最佳答案

我认为您需要向 POJO 添加一个 @Id 带注释的字段(String 或 BigInteger)(或者只是这些类型的名为“id”的字段)。 Spring将使用它,然后了解您正在保存的文档已经在数据库中,并更新它而不是创建新文档:

http://docs.spring.io/spring-data/data-document/docs/current/reference/html/#d0e1508

关于java - 如何在循环内更新 SpringData MongoDB 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32120757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com