[英]Spring-Data MongoDB Update all document fields
我正在从SQL(JPA)迁移到MongoDB,我听说Spring-Data很棒,所以我正在使用它,特别是对于DBObjects和应用程序对象之间的整个转换。
我的大多数要求都得到了满足,但我不知道如何使用MongoDB将JPA的更新功能迁移到Spring-Data:1。保存/更新是隐式的,由hibernate处理2.更新根据给定的对象更新所有值
与JPA类似,使用com.mongodb.DB时,您可以执行单行“更新”操作:
public boolean update(String collectionName, DBObject referenceObject, DBObject object) {
WriteResult result = this.db.getCollection(collectionName).update(referenceObject, object);
return parseWriteResult(result);
}
它根据给定对象中的值保存/更新等于引用对象的对象,具体取决于对象是否在DB中。
现在我正在使用MongoOperations,我只能使用“Update”对象更新对象,我必须一次为一个值设置种子:
MongoOperations client = ...
...
Update update = new Update();
update.set("past", 1);
update.set("current", 3);
...
client.updateFirst(query, update, clazz);
有没有办法使用JPA中的功能?
我不确定我是否100%理解您的问题,但似乎您尝试使用Spring-Data将数据从使用Hibernate的SQL数据库迁移到MongoDB。
我们最近使用Spring-Data将我们应用程序中的所有二进制数据从Apache Jackrabbit迁移到MongoDB。 此外,还有一个实例,我们仍然在我们的SQL数据库中存储了一些二进制数据,这些数据也被迁移:
我们以下列方式迁移了这些数据:
您还提到了有关更新的内容:
要更新特定文档,只需使用MongoOperations#updateFirst() 。
或者你可以使用MongoOperatons#findOne()查找你想要的对象,然后更新你想要的字段,然后调用MongoOperations#save() ,如果你读了javadoc,你会看到执行upsert。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.