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

문서의 배열 항목 수를 계산하고 새 필드에 표시하는 MongoDB 쿼리

<시간/>

문서의 배열 항목 수를 계산하려면 MongoDB에서 $size를 사용합니다. 문서로 컬렉션을 만들자 −

> db.demo703.insertOne({"ListOfSubject":["MySQL","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebaf551299a9f98c93b4")
}
> db.demo703.insertOne({"ListOfSubject":["Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebb5551299a9f98c93b5")
}
> db.demo703.insertOne({"ListOfSubject":["C","C++","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebbf551299a9f98c93b6")
}

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo703.find();

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

{ "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"), "ListOfSubject" : [ "MySQL", "MongoDB" ] }
{ "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"), "ListOfSubject" : [ "Java" ] }
{ "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"), "ListOfSubject" : [ "C", "C++", "Python" ] }

다음은 배열 항목의 수를 계산하는 쿼리입니다 -

>db.demo703.aggregate({$project:{NumberOfItemsInEachArray:{$size:"$ListOfSubject"}}}).pretty();

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

<
{
   "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"),
   "NumberOfItemsInEachArray" : 2
}
{
   "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"),
   "NumberOfItemsInEachArray" : 1
}
{
   "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"),
   "NumberOfItemsInEachArray" : 3
}