マークが最も少ない2つのドキュメントを取得するためのMongoDB集計
ソートされたマークのリストを取得するには、$sortを使用します。 $ limit:2を使用します マークが最も少ないそのようなドキュメントを2つだけ表示します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo709.insertOne({Name:"John","Marks":75});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea839005d33e20ed1097b76")
}
> db.demo709.insertOne({Name:"Chris","Marks":45});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea839075d33e20ed1097b77")
}
> db.demo709.insertOne({Name:"David","Marks":54});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea839125d33e20ed1097b78")
}
> db.demo709.insertOne({Name:"Bob","Marks":69});
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea839295d33e20ed1097b79")
} find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo709.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5ea839005d33e20ed1097b76"), "Name" : "John", "Marks" : 75 }
{ "_id" : ObjectId("5ea839075d33e20ed1097b77"), "Name" : "Chris", "Marks" : 45 }
{ "_id" : ObjectId("5ea839125d33e20ed1097b78"), "Name" : "David", "Marks" : 54 }
{ "_id" : ObjectId("5ea839295d33e20ed1097b79"), "Name" : "Bob", "Marks" : 69 } 以下は、マークが最も少ない2つのドキュメントを取得するためのクエリです-
> db.demo709.aggregate({
... $group: {
... _id: '$Marks',
... ListOfName: { $push: '$Name' }
... }
... }, {
... $sort: {
... '_id': 1
... }
... }, {
... $limit: 2
... }); これにより、次の出力が生成されます-
{ "_id" : 45, "ListOfName" : [ "Chris" ] }
{ "_id" : 54, "ListOfName" : [ "David" ] } -
Aggregationを使用して、MongoDBのすべての値を照合します
MongoDBのすべての値を一致させるには、Aggregationで$andとともに$matchを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo574.insertOne( ... { ... "details1": { ... "details2": { ... "dueDate&q
-
異なるドキュメント内の同様のIDを持つ要素のMongoDB集約?
このようなドキュメントのグループ化には、MongoDBaggregate()で$groupを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo602.insertOne({id:1,Name:"Chris"});{ "acknowledged" : true, "insertedId" : ObjectId("5e960080ed011c280a0905c9") } > db.demo602.insertOne({id:2,Name:"