【发布时间】:2016-02-25 08:39:36
【问题描述】:
我正在将我的文档保存在 MongoDb 中,并使用带有类、集合名称参数的保存方法。
所有的save和insert方法都是void返回类型。那么我怎么知道我的文档是否已保存。
我是否必须重新查询以检查我的文档是否已保存。我只需要任何返回值来查看它是否被保存。
此外,我正在使用 Spring Data for Mongo 进行操作。
【问题讨论】:
标签: java mongodb spring-data-mongodb
我正在将我的文档保存在 MongoDb 中,并使用带有类、集合名称参数的保存方法。
所有的save和insert方法都是void返回类型。那么我怎么知道我的文档是否已保存。
我是否必须重新查询以检查我的文档是否已保存。我只需要任何返回值来查看它是否被保存。
此外,我正在使用 Spring Data for Mongo 进行操作。
【问题讨论】:
标签: java mongodb spring-data-mongodb
org.springframework.data.mongodb.repository.MongoRepository
返回已保存对象的列表:
<S extends T> List<S> save(Iterable<S> entites);
或在
CrudRepository
你有
<S extends T> S save(S entity);
提供保存的对象。该对象将具有一个您使用@Id 注释的任何字段,该字段在成功持久化后填充的值与 null 不同。
【讨论】:
这取决于您使用的是什么WriteConcern。如果您使用WriteConcern.ACKNOWLEDGED,
该操作将等待主服务器的确认,因此如果没有引发异常,则记录已正确保存。否则应该可以查询WriteResult
WriteResult writeResult=mycollection.insert(record);
if (writeResult.getError() != null) {
throw new Exception(String.format("Insertion wasn't successful: %s",writeResult));
}
【讨论】: