Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

배열 길이별로 정렬하는 MongoDB 집계 프레임워크?

<시간/>

배열의 길이를 기준으로 정렬하려면 집계()를 사용하십시오. 그 전에 $sum을 사용하여 배열의 레코드 수를 가져옵니다. 문서로 컬렉션을 만들자

> db.demo33.insertOne({"ListOfStudent":["Chris","Bob"]});{ "승인됨" :true, "insertedId" :ObjectId("5e17556ccfb11e5c34d898ca")}> db.demo33. insertOne({"ListOfStudent":["데이비드","아담","마이크"]});{ "확인" :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", "아담", "마이크" ] }{ "_id" :ObjectId("5e1755a3cfb11e5c34d898cc"), "ListOfStudent" :[ "캐롤", "샘", "존", "로버트" ] }

다음은 배열의 길이로 정렬하는 쿼리입니다 -

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

이것은 다음과 같은 출력을 생성합니다 -

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