我将POJO映射到SpringData MongoDB文档
@Document(collection = “cacheVersion” )
public class CacheVersionBean {
private boolean active = true;
...
然后我在MongoDB中找到列表,并尝试使用MongoTemplate save修改列表中的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);
...
但是,此代码不是修改数据库中的文档,而是创建新文档。更新的最简单方法是什么?
答案 0 :(得分:1)
我认为你需要在POJO中添加一个@Id
带注释的字段(String或BigInteger)(或者只是一个名为'id'的字段)。 Spring将使用它,然后了解您正在保存的文档已经在数据库中,并更新它而不是创建新文档:
http://docs.spring.io/spring-data/data-document/docs/current/reference/html/#d0e1508