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

MongoTemplate のドキュメントで説明されているように:

public com.mongodb.WriteResult updateFirst(Query query, Update update, Class entityClass) インターフェースからコピーされた説明: MongoOperations クエリ ドキュメントと一致するエンティティ クラスのコレクションで見つかった最初のオブジェクトを、指​​定された更新ドキュメントで更新します。定義: インターフェース MongoOperations 内の updateFirst パラメータ: query - 更新するレコードを選択するために使用される基準を指定するクエリ ドキュメント update - 更新されたオブジェクトまたは既存のオブジェクトを操作する $ 演算子を含む更新ドキュメント。entityClass - 使用するコレクションを決定するクラス 戻り値: 以前の書き込みの結果にアクセスできるようにする WriteResult。

結果は、返された WriteResult から、成功の場合は getN() を、失敗の場合は getError() を使用して見つけることができます。

http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/MongoTemplate.html#updateFirst-org.springframework.data.mongodb.core.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 に答える