gpt4 book ai didi

java - 这是使用 Morphia 更新 mongodb 对象的最佳实践吗

转载 作者:行者123 更新时间:2023-12-01 20:21:24 26 4
gpt4 key购买 nike

我在 SparkJava 项目中使用 MongoDB 和 Morphia。现在这对我来说是一次新的冒险。我想知道这是否是更新数据库中现有对象的最佳方法?如果我想替换更新完整的文档,有更好的方法吗?

我的 ContentBlockDao 中的示例更新方法

@Override
public ContentBlock update(ContentBlock contentBlock) throws DaoException {
Query<ContentBlock> query = datastore.createQuery(ContentBlock.class)
.field("id").equal(new ObjectId(contentBlock.getId()));
UpdateOperations<ContentBlock> updateOperations = setValuesForUpdate(
datastore.createUpdateOperations(ContentBlock.class),
contentBlock);

datastore.update(query, updateOperations);

return query.get();
}

private UpdateOperations setValuesForUpdate(UpdateOperations<ContentBlock> updateOperations,
ContentBlock contentBlock) {

updateOperations.set("html", contentBlock.getHtml());
updateOperations.set("lastUpdater", contentBlock.getLastUpdater());

return updateOperations;
}

最佳答案

让吗啡为您管理对象更新。

使用保存方法进行完整的文档替换。如果实体中不存在 _id,则创建一个新文档,否则替换文档。

<T> Key<T> save(T entity); 

使用合并方法进行选择性字段更新。这会将 dbobject 与输入实体进行比较并更新更改的字段。

<T> Key<T> merge(T entity)

对于任何其他查询条件,您可以使用更新方法。

<T> UpdateResults update(T entity, UpdateOperations<T> var2);

关于java - 这是使用 Morphia 更新 mongodb 对象的最佳实践吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44615717/

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