0

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

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

4

3 回答 3

2

对于所有的读者,这里有更多的信息~

MongomongoTemplate.updateFirst和许多其他方法返回抽象UpdateResult类,即。AcknowledgedUpdateResult&的一个实例UnacknowledgedUpdateResult

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

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

你可以打电话

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

请注意,isModifiedCountAvailable()已弃用。

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

您可以做的最好的事情是检查更新是否成功,检查修改的计数,和/或执行另一个查询以根据 id 查找完整文档(如果需要)。

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

于 2020-04-15T09:15:42.637 回答
0

updateFirst 方法返回的结果是一个 com.mongodb.WriteResult 对象,下面的方法可以用来判断更新是成功还是失败。

com.mongodb.WriteResult:这个类可以让你访问之前写入(更新或插入)的结果。

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

获取N():

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

错误():

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

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

于 2016-11-04T06:53:22.950 回答
0

如 MongoTemplate 文档中所述:

public com.mongodb.WriteResult updateFirst(Query query, Update update, Class 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

于 2016-11-04T06:59:14.700 回答