MongoDBのフィールドごとにグループ化されたドキュメントを選択しますか?
MongoDBのフィールドごとにグループ化されたドキュメントを選択するには、$groupを$projectとともに使用します。まず、ドキュメントを使用してコレクションを作成しましょう-
> db.demo540.insertOne({id:1,"Name":"Chris","CountryName":"US"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8ca368ef4dcbee04fbbc0e") } > db.demo540.insertOne({id:1,"Name":"Chris","CountryName":"UK"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8ca36bef4dcbee04fbbc0f") } > db.demo540.insertOne({id:1,"Name":"Chris","CountryName":"AUS"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8ca370ef4dcbee04fbbc10") }>
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo540.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e8ca368ef4dcbee04fbbc0e"), "id" : 1, "Name" : "Chris", "CountryName" : "US" } { "_id" : ObjectId("5e8ca36bef4dcbee04fbbc0f"), "id" : 1, "Name" : "Chris", "CountryName" : "UK" } { "_id" : ObjectId("5e8ca370ef4dcbee04fbbc10"), "id" : 1, "Name" : "Chris", "CountryName" : "AUS" }
以下は、フィールド-
でグループ化されたドキュメントを選択するためのクエリです。> var query= [ ... { ... "$group": { ... "_id": { ... "id": "$id", ... "Name": "$Name" ... }, ... "details": { ... "$push": { ... ... "CountryName": "$CountryName" ... ... } ... } ... } ... }, ... { ... "$project": { ... "_id": "$_id.id", ... "Name": "$_id.Name", ... "details": 1 ... } ... } ... ]; > db.demo540.aggregate(q).pretty();
これにより、次の出力が生成されます-
{ "details" : [ { "Name" : "Chris", "CountryName" : "US" }, { "Name" : "Chris", "CountryName" : "UK" }, { "Name" : "Chris", "CountryName" : "AUS" } ], "_id" : 1, "Name" : "Chris" }
-
MongoDBのidフィールドを非表示
ドキュメントを使用してコレクションを作成しましょう- > db.demo575.insertOne({id:101,Information:{Name:"Chris",Age:21}});{ "acknowledged" : true, "insertedId" : ObjectId("5e916a55581e9acd78b427f7") } > db.demo575.insertOne({id:102,Information:{Name:"David",A
-
配列フィールドを含むドキュメントに一致するMongoDBクエリ
配列フィールドを含むドキュメントを照合するには、$elemMatch演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo592.insertOne( ... { ... "id":101, ... "details" : [ ... { "Name" : "Chris", "Value