Mongotemplate中的update方法返回了什么?

时间:2016-11-04 06:34:56

标签: java mongodb spring-data-mongodb mongotemplate

我想知道mongoTemplate中update方法返回的结果是什么。

实施例。 mongoTemplate.updateFirst(query, update, entityClass); 它返回一个WriteResult对象。如果更新成功/失败,它的内容是什么。

3 个答案:

答案 0 :(得分:2)

对于所有其他读者,这里是更多信息〜

Mongo的mongoTemplate.updateFirst和许多其他方法返回抽象的UpdateResult类,即。 AcknowledgedUpdateResultUnacknowledgedUpdateResult

的实例

您可以从此实例获取的信息:

  • long matchedCount
  • long modifiedCount
  • BsonValue upsertedId #文档ID为字符串

您可以打电话

  • wasAcknowledged()
  • isModifiedCountAvailable()
  • getMatchedCount()
  • getUpsertedId()

请注意,isModifiedCountAvailable()已过时。

通过执行上述方法(以及com.mongodb.client.result中的许多其他类似方法),您 无法 获得完整的文档/模型。

您能做的最好的事情就是检查更新是否成功,检查修改后的计数和/或执行另一个查询以按ID查找完整的文档。

希望这对其他人有帮助,考虑到上述信息对我恕我直言没有多大作用。

答案 1 :(得分:0)

updateFirst方法返回的结果是com.mongodb.WriteResult对象,以下方法可用于查找更新成功或失败。

  

com.mongodb.WriteResult:   该类允许您访问结果   上一次写(更新或插入)

如果更新成功/失败,它的内容是什么?

<强> getN():

如果成功,则返回集合中更新的记录数。

<强> getError():

如果失败,则返回错误消息。

您可以查看API here https://api.mongodb.com/java/2.6/com/mongodb/WriteResult.html

答案 2 :(得分:0)

如MongoTemplate文档中所述:

  

public com.mongodb.WriteResult updateFirst(查询查询,                                              更新更新,                                              类entityClass)   从界面复制的描述:MongoOperations   使用提供的更新文档更新与查询文档匹配的实体类集合中的第一个对象。   具体说明:   在MongoOperations接口中的updateFirst   参数:   query - 查询文档,指定用于选择要更新的记录的条件   update - 包含更新对象的更新文档或操作现有对象的$运算符。   entityClass - 确定要使用的集合的类   返回:   WriteResult,它允许您访问上一次写入的结果。

结果可以通过以下方式找到: getN()表示成功,getError()表示从WriteResult返回失败。

http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/MongoTemplate.html#updateFirst-org.springframework.data.mongodb.core.query.Query-org.springframework.data.mongodb.core.query.Update-java.lang.Class-

https://api.mongodb.com/java/2.6/com/mongodb/WriteResult.html