如何使用Spring Data和MongoDB更新Object?
我只是做一个template.save()吗?
public Person update( String id, String Name )
{
logger.debug("Retrieving an existing person");
// Find an entry where pid matches the id
Query query = new Query(where("pid").is(id));
// Execute the query and find one matching entry
Person person = mongoTemplate.findOne("mycollection", query, Person.class);
person.setName(name);
/**
* How do I update the database
*/
return person;
}
答案 0 :(得分:8)
答案 1 :(得分:4)
您可以在一行中执行“查找”和“更新”操作。
mongoTemplate.updateFirst(query,Update.update("Name", name),Person.class)
你可以在这里找到一些优秀的教程 Spring Data MongoDB Helloworld
答案 2 :(得分:4)
您可以使用template.save()
或repository.save(entity)
方法。但是mongo也Update
反对这个操作。
例如:
Update update=new Update();
update.set("fieldName",value);
mongoTemplate.update**(query,update,entityClass);
答案 3 :(得分:0)
下面的代码是使用MongoTemplate进行更新操作的等效实现。
public Person update(Person person){
Query query = new Query();
query.addCriteria(Criteria.where("id").is(person.getId()));
Update update = new Update();
update.set("name", person.getName());
update.set("description", person.getDescription());
return mongoTemplate.findAndModify(query, update, Person.class);
}