2

Spring Data (1.1.0.M1) を使用して、削除されたドキュメントの数を特定する方法はありますか?

現在remove()、クラスでメソッドを使用しMongoTemplateていますが、操作に関する情報は一切返されません。

を経由していない場合MongoTemplate、ドキュメントを削除し、削除されたドキュメントの数を確認する別の方法はありますか?

4

2 に答える 2

9

MongoDB でドキュメントを書き込む (削除を含む) 場合、getLastError()を呼び出して、最後の書き込み操作がどのような影響を与えたかを確認できます。

問題は、エラーがない場合でも、操作によって影響を受けたオブジェクト (ドキュメント) の数を知りたいということです。

シェルでは、 によって返されたオブジェクトを調べることで詳細を確認できますgetLastErrorObj()。Java では、Mongo Java ドライバーが同等の処理を行うメソッドを提供します。

削除操作の場合、フィールド"n"は影響を受けるドキュメントの数に対応します。例の小さなスニペットを次に示します。

import com.mongodb.WriteResult;
...
   WriteResult wr = collection.remove(new BasicDBObject());  // removes everything
   System.out.println(wr.getN());        // prints the number of removed documents
于 2012-06-02T02:46:38.590 に答える
0

私はMongoDBに慣れていないので、MongoDBの経験はあまりありません.私が推奨しようとしていることがあなたの状況に当てはまるかどうかはわかりません. フラグ safe=true をクエリに渡すと、クエリで影響を受ける行の量を示すキー 'n' が返されます。あなたはそれを調べる必要があります..

于 2012-06-01T23:53:34.063 に答える