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

MongoDB에서 배열 크기 필드를 합산하는 가장 좋은 방법은 무엇입니까?

<시간/>

배열 크기 필드를 합산하려면 $size와 함께 $sum을 사용하십시오. 문서로 컬렉션을 만들자 −

> db.demo231.insertOne({"Subjects":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc73ff4cebbeaebec5143")
}
> db.demo231.insertOne({"Subjects":["Java","C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc757f4cebbeaebec5144")
}
> db.demo231.insertOne({"Subjects":["Python","Spring"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc762f4cebbeaebec5145")
}

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

> db.demo231.find();

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

{ "_id" : ObjectId("5e3fc73ff4cebbeaebec5143"), "Subjects" : [ "MongoDB", "MySQL", "SQL Server" ] }
{ "_id" : ObjectId("5e3fc757f4cebbeaebec5144"), "Subjects" : [ "Java", "C", "C++" ] }
{ "_id" : ObjectId("5e3fc762f4cebbeaebec5145"), "Subjects" : [ "Python", "Spring" ] }

다음은 MongoDB에서 배열 크기 필드를 합산하는 쿼리입니다 -

> db.demo231.aggregate([{'$group': {'_id': '_id', 'ToTalValue': {'$sum': {'$size': '$Subjects'}}}}])

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

{ "_id" : "_id", "ToTalValue" : 8 }