MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

ドキュメント内の繰り返しマークの数を取得するためのMongoDBグループクエリ?


グループクエリの場合は、MongoDB $ groupを使用し、$sumでカウントを取得します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo676.insertOne({"Marks":87});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea41eed04263e90dac943f2")
}
> db.demo676.insertOne({"Marks":75});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea41ef304263e90dac943f3")
}
> db.demo676.insertOne({"Marks":87});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea41ef404263e90dac943f4")
}
> db.demo676.insertOne({"Marks":65});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea41ef704263e90dac943f5")
}
> db.demo676.insertOne({"Marks":65});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea41ef804263e90dac943f6")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo676.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5ea41eed04263e90dac943f2"), "Marks" : 87 }
{ "_id" : ObjectId("5ea41ef304263e90dac943f3"), "Marks" : 75 }
{ "_id" : ObjectId("5ea41ef404263e90dac943f4"), "Marks" : 87 }
{ "_id" : ObjectId("5ea41ef704263e90dac943f5"), "Marks" : 65 }
{ "_id" : ObjectId("5ea41ef804263e90dac943f6"), "Marks" : 65 }

以下は、繰り返されるマークの数を取得するためのクエリです-

> db.demo676.aggregate( { $group: {
...    _id: {Marks: "$Marks" },
...    'Count': { $sum :1 }
... }})

これにより、次の出力が生成されます-

{ "_id" : { "Marks" : 75 }, "Count" : 1 }
{ "_id" : { "Marks" : 65 }, "Count" : 2 }
{ "_id" : { "Marks" : 87 }, "Count" : 2 }

  1. 繰り返される年齢値の数を取得するためのドキュメントのGROUPBY配列

    ドキュメントのGROUPBY配列には、$groupを使用します。ドキュメントを使用してコレクションを作成しましょう- >db.demo559.insertOne({details:[{Name:"Chris",Age:21},{Name:"Bob",Age:22},{Name:"Carol", Age:21},{Name:"Sam",Age:21}]}); {    "acknowledged" : true,    "insertedId

  2. マークが最も少ない2つのドキュメントを取得するためのMongoDB集計

    ソートされたマークのリストを取得するには、$sortを使用します。 $ limit:2を使用します マークが最も少ないそのようなドキュメントを2つだけ表示します。ドキュメントを使用してコレクションを作成しましょう- > db.demo709.insertOne({Name:"John","Marks":75}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea839005d33e20ed