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

配列の長さでソートするMongoDB集約フレームワーク?


配列の長さで並べ替えるには、aggregate()を使用します。その前に、$sumを使用して配列内のレコードの数を取得します。ドキュメントを使用してコレクションを作成しましょう

> db.demo33.insertOne({"ListOfStudent":["Chris","Bob"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e17556ccfb11e5c34d898ca")
}
> db.demo33.insertOne({"ListOfStudent":["David","Adam","Mike"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e17557acfb11e5c34d898cb")
}
> db.demo33.insertOne({"ListOfStudent":["Carol","Sam","John","Robert"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e1755a3cfb11e5c34d898cc")
}

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

> db.demo33.find();

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

{ "_id" : ObjectId("5e17556ccfb11e5c34d898ca"), "ListOfStudent" : [ "Chris", "Bob" ] }
{ "_id" : ObjectId("5e17557acfb11e5c34d898cb"), "ListOfStudent" : [ "David", "Adam", "Mike" ] }
{ "_id" : ObjectId("5e1755a3cfb11e5c34d898cc"), "ListOfStudent" : [ "Carol", "Sam", "John", "Robert" ] }

以下は、配列の長さで並べ替えるクエリです-

> db.demo33.aggregate({$unwind:"$ListOfStudent"}, { $group : {_id:'$_id', ct:{$sum:1}}}, { $sort :{ ct: -1}} );

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

{ "_id" : ObjectId("5e1755a3cfb11e5c34d898cc"), "ct" : 4 }
{ "_id" : ObjectId("5e17557acfb11e5c34d898cb"), "ct" : 3 }
{ "_id" : ObjectId("5e17556ccfb11e5c34d898ca"), "ct" : 2 }

  1. 配列要素の集計で平均を取得するMongoDBクエリ?

    配列要素の平均を取得するには、$avgを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo584.insertOne({"Marks":[75,50,85,60,80]});{    "acknowledged" : true,    "insertedId" : ObjectId("5e91d827fd2d90c177b5bcc2") } find()メソッドを使用してコレクションからすべてのドキュメントを表示する- > db

  2. MongoDBアグリゲーションで配列の要素のサブセットを一緒に追加するにはどうすればよいですか?

    配列の要素のサブセットを追加するには、$firstと$sumを一緒に使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo610.insertOne({Values:[10,20,30,40,50]});{    "acknowledged" : true, "insertedId" : ObjectId("5e9747b8f57d0dc0b182d62e") } find()メソッドを使用してコレクションからすべてのドキュメントを表示する- > db.demo610.f