我已将 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/