1

これが私のmongdbコレクションです:

 { "_id" : ObjectId("50033fb1ecc250aa369a678a"), "ID" : 1, "FirstName" : "ijaz",
"LastName" : "alam", "Age" : 21, "Address" : "peshawer" }
{ "_id" : ObjectId("50033fc2ecc250aa369a678b"), "ID" : 2, "FirstName" : "ashfaq"
,"LastName" : "khan", "Age" : 1921, "Address" : "sadkabad" }
{ "_id" : ObjectId("50033fdeecc250aa369a678c"), "ID" : 3, "FirstName" : "danyal"
,"LastName" : "alam", "Age" : 18, "Address" : "lahore" }
{ "_id" : ObjectId("50033ff7ecc250aa369a678d"), "ID" : 43, "FirstName" : "shahzad"
, "LastName" : "sad", "Age" : 22, "Address" : "nazirabad" }

ここで、group、distinctのような集計関数を使用し、Javaドライバーを介して上記のコレクションを信頼するか、Javaドライバーを介してクエリに集計関数を実装する方法を説明します。

4

1 に答える 1

3

Distinctcountと特別な Mongo コマンド。これらを使用するために特別な集計を行う必要はありません。DBCollection インスタンスで適切なパラメーターを使用してそれらを呼び出すだけです。

myCollection.distinct("Age") // gives you all the ages in the collection
myCollection.count(new BasicDBObject("Age", 22)) // gives you a count of 22 year olds

他の集計操作では、Java が必要ですGroupCommand

new GroupCommand(myCollection,
             new BasicDBObject("Age ", true),
             null,
             new BasicDBObject("count", 0),
            "function(key,val){ val.count++;}", 
             null); //gives counts of each age in the collection

Mongo の 2.1.x 開発リリース以降で実行している場合は、集約フレームワークを確認してください。既存の group コマンドよりも優れています(ただし、この回答の時点ではまだ本番環境に対応していません)。

于 2012-07-15T23:53:47.553 に答える