【问题标题】:How to know if document was saved in MongoDb after save() method?在 save() 方法之后如何知道文档是否保存在 MongoDb 中?
【发布时间】:2016-02-25 08:39:36
【问题描述】:

我正在将我的文档保存在 MongoDb 中,并使用带有类、集合名称参数的保存方法。

所有的save和insert方法都是void返回类型。那么我怎么知道我的文档是否已保存。

我是否必须重新查询以检查我的文档是否已保存。我只需要任何返回值来查看它是否被保存。

此外,我正在使用 Spring Data for Mongo 进行操作。

【问题讨论】:

    标签: java mongodb spring-data-mongodb


    【解决方案1】:

    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 不同。

    【讨论】:

      【解决方案2】:

      这取决于您使用的是什么WriteConcern。如果您使用WriteConcern.ACKNOWLEDGED, 该操作将等待主服务器的确认,因此如果没有引发异常,则记录已正确保存。否则应该可以查询WriteResult

      WriteResult writeResult=mycollection.insert(record);
      if (writeResult.getError() != null) {
          throw new Exception(String.format("Insertion wasn't successful: %s",writeResult));
       }
      

      【讨论】:

        猜你喜欢
        • 2018-12-31
        • 1970-01-01
        • 1970-01-01
        • 2020-11-02
        • 1970-01-01
        • 1970-01-01
        • 2020-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多