MongoDB 3.0を使用しています。私はドキュメントが返さ数を取得する方法count()
を持っている上photos
という名前のドキュメントのセットがあるとし、その構造はdatabase.getCollection("photos")
とmongodb javaドライバで見つけた後のカウント操作の呼び出し方法
{"_id" : 1, photographer: "jack"}
で、MongoDBは、MongoCollection
オブジェクトを返します。
しかし、特定の条件でクエリを実行すると、たとえば100未満のIDを持つ文書を検索:
photosCollections.find(Document.parse("{_id : {$lt : 100}}"))
find
上記の方法は、常にcount()
機能を提供していないカーソルを返します。では、返されたドキュメントの数はどのように知ることができますか?私は自分自身をイテレータを通過し、ドキュメントの数を数えることができる、私はもちろん
db.photos.find({_id : {$lt : 100}}).count()
使用することができ、コマンドライン上で知っています。しかし、私はそれが本当に不器用だと思う。私はMongoDB javaドライバはfind()
メソッドによって返されたドキュメントの数を数えるためにこのような機能を提供しているのだろうか?そうでない場合は、決定の背後にある理由は何ですか?私は同様の問題があった
MongoClient client = new MongoClient(MONGOHOST,MONGOPORT);
DBCollection coll = client.getDB(DBNAME).getCollection(COLLECTION);
DBObject query = new Querybuilder().start()
.put("_id").lessThan(100).get();
DBCursor result = coll.find(query);
System.out.println("Number of pictures found: " + result.count());
はい、カウント()メソッドは、MongoDBの2.0に設けられたが、MongoDBの3.0で除去しました。私は理由がわからない...... –
@EnsomHodder http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/ URLの3.0に注意してください。テスト済み、作品。 –
クエリビルダが存在しません – PedroD