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

MongoDBでコレクションとグループ化をフィールド数で集計するにはどうすればよいですか?


MongoDBのaggregate()で、$groupとaggregatecollectionを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo616.insertOne({"details":{"Name":"Chris","Age":21}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e99bfac65492f6c60d00283")
}
> db.demo616.insertOne({"details":{"Name":"Chris","Age":22}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e99bfb065492f6c60d00284")
}
> db.demo616.insertOne({"details":{"Name":"Bob","Age":23}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e99bfb865492f6c60d00285")
}
> db.demo616.insertOne({"details":{"Name":"Sam","Age":21}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e99bfbd65492f6c60d00286")
}
> db.demo616.insertOne({"details":{"Name":"Chris","Age":24}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e99bfc165492f6c60d00287")
}

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

> db.demo616.find();

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

{ "_id" : ObjectId("5e99bfac65492f6c60d00283"), "details" : { "Name" : "Chris", "Age" : 21 } }
{ "_id" : ObjectId("5e99bfb065492f6c60d00284"), "details" : { "Name" : "Chris", "Age" : 22 } }
{ "_id" : ObjectId("5e99bfb865492f6c60d00285"), "details" : { "Name" : "Bob", "Age" : 23 } }
{ "_id" : ObjectId("5e99bfbd65492f6c60d00286"), "details" : { "Name" : "Sam", "Age" : 21 } }
{ "_id" : ObjectId("5e99bfc165492f6c60d00287"), "details" : { "Name" : "Chris", "Age" : 24 } }

以下は、コレクションを集計し、フィールド数でグループ化するためのクエリです-

> db.demo616.aggregate(
... [
...    {
...       $group:{_id:"$details.Name",Total:{$sum:1}}}
... ]
... );

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

{ "_id" : "Sam", "Total" : 1 }
{ "_id" : "Bob", "Total" : 1 }
{ "_id" : "Chris", "Total" : 3 }

  1. MongoDBコレクション内のすべてのドキュメントに新しいフィールドを追加する方法

    新しいフィールドを追加するには、MongoDBで$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo712.insertOne({"Name":"John"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea85f675d33e20ed1097b82") } > db.demo712.insertOne({"

  2. MongoDB 4でドキュメントを並べ替えて、単一のフィールドのみを表示するにはどうすればよいですか?

    MongoDB 4でドキュメントを並べ替えるには、sort()を使用します。並べ替えられた単一のフィールドのみを表示するには、1に設定します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo611.insertOne({"Name":"Chris"});{    "acknowledged" : true, "insertedId" : ObjectId("5e987110f6b89257f5584d83") } > db.demo61