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

MongoDBで同等のカウントを使用して、発生回数が最大のトップユーザーを検索します


カウントとトップユーザーを取得するには、aggregate()とともに$groupを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo264.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ed441627c0c63e7dba9e")
}
> db.demo264.insertOne({"Name":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ed471627c0c63e7dba9f")
}
> db.demo264.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ed491627c0c63e7dbaa0")
}
> db.demo264.insertOne({"Name":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ed4c1627c0c63e7dbaa1")
}
> db.demo264.insertOne({"Name":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ed4e1627c0c63e7dbaa2")
}
> db.demo264.insertOne({"Name":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e47ed531627c0c63e7dbaa3")
}

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

> db.demo264.find();

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

{ "_id" : ObjectId("5e47ed441627c0c63e7dba9e"), "Name" : "Chris" }
{ "_id" : ObjectId("5e47ed471627c0c63e7dba9f"), "Name" : "David" }
{ "_id" : ObjectId("5e47ed491627c0c63e7dbaa0"), "Name" : "Chris" }
{ "_id" : ObjectId("5e47ed4c1627c0c63e7dbaa1"), "Name" : "Bob" }
{ "_id" : ObjectId("5e47ed4e1627c0c63e7dbaa2"), "Name" : "Chris" }
{ "_id" : ObjectId("5e47ed531627c0c63e7dbaa3"), "Name" : "Bob" }

以下は、MongoDBで同等のカウントを使用して、発生回数が最大のトップユーザーを見つけるためのクエリです-

> db.demo264.aggregate(
...   {$group : {_id : "$Name", "count" : {$sum : 1}}},
...   {$sort : {"count" : -1}},
...   {$limit : 5}
...)

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

{ "_id" : "Chris", "count" : 3 }
{ "_id" : "Bob", "count" : 2 }
{ "_id" : "David", "count" : 1 }

  1. MongoDBで名前でユーザーを見つけることができませんか?

    MongoDBで名前でユーザーを検索するには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo504.insertOne({"Name":"Chris"});{    "acknowledged" : true,    "insertedId" : ObjectId("5e8823ee987b6e0e9d18f570") } > db.demo504.insertOne({"Name&

  2. MongoDB集計で複数のフィールドでカウント

    複数のフィールドでカウントするには、MongoDBで$facetを使用します。 $ facetは、同じ入力ドキュメントのセットの単一ステージ内で複数の集約パイプラインを処理します。ドキュメントを使用してコレクションを作成しましょう- > db.demo721.insertOne( ...    { ... ...       "details1": { ...          "id":101 ... ...