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

MongoDBの複数のフィールドで個別に実行しますか?


$ group演算子を集約フレームワークと一緒に使用して、複数のフィールドで個別に実行できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.distinctOnMultipleFieldsDemo.insertOne(
...    {
...       "StudentFirstName" : "Chris",
...       "StudentAge" : 21,
...       "StudentCountryName": "US"
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2e518b64f4b851c3a13d7")
}
> db.distinctOnMultipleFieldsDemo.insertOne(
...    {
...       "StudentFirstName" : "Robert",
...       "StudentAge" : 21,
...       "StudentCountryName": "AUS"
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2e518b64f4b851c3a13d8")
}
> db.distinctOnMultipleFieldsDemo.insertOne(
...    {
...       "StudentFirstName" : "Chris",
...       "StudentAge" : 22,
...       "StudentCountryName": "UK"
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2e518b64f4b851c3a13d9")
}
> db.distinctOnMultipleFieldsDemo.insertOne(
...    {
...       "StudentFirstName" : "David",
...       "StudentAge" : 24,
...       "StudentCountryName": "AUS"
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2e518b64f4b851c3a13da")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.distinctOnMultipleFieldsDemo.find().pretty();

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

{
   "_id" : ObjectId("5cd2e518b64f4b851c3a13d7"),
   "StudentFirstName" : "Chris",
   "StudentAge" : 21,
   "StudentCountryName" : "US"
}
{
   "_id" : ObjectId("5cd2e518b64f4b851c3a13d8"),
   "StudentFirstName" : "Robert",
   "StudentAge" : 21,
   "StudentCountryName" : "AUS"
}
{
   "_id" : ObjectId("5cd2e518b64f4b851c3a13d9"),
   "StudentFirstName" : "Chris",
   "StudentAge" : 22,
   "StudentCountryName" : "UK"
}
{
   "_id" : ObjectId("5cd2e518b64f4b851c3a13da"),
   "StudentFirstName" : "David",
   "StudentAge" : 24,
   "StudentCountryName" : "AUS"
}

以下は、MongoDBの複数のフィールドで個別に実行するためのクエリです-

> db.distinctOnMultipleFieldsDemo.aggregate([
...    {
...       $group:
...       {
...          _id:0,
...          StudentFirstName: {$addToSet: '$StudentFirstName'},
...          StudentAge: {$addToSet: '$StudentAge'},
...          StudentCountryName: {$addToSet: '$StudentCountryName'},
...    }}
... ]);

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

{ "_id" : 0, "StudentFirstName" : [ "David", "Robert", "Chris" ], "StudentAge" : [ 24, 22, 21 ], "StudentCountryName" : [ "UK", "AUS", "US" ] }

  1. MongoDBの条件に一致する複数のサブドキュメントからフィールドを取得しますか?

    複数のサブドキュメントからフィールドを取得するには、$unwindでMongoDB集計を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo671.insertOne( ... { ... ...    "details" : [ ...    { ...       "id" : "1" ...    }, ...    { ...       Countr

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

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