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

Aggregation 프레임워크를 사용하여 MongoDB의 두 필드를 합산할 수 있습니까?

<시간/>

예, $project 연산자를 사용하면 가능합니다. 먼저 문서로 컬렉션을 생성하겠습니다.

> db.sumTwoFieldsDemo.insertOne({"FirstValue":150,"SecondValue":350});{ "승인":true, "insertedId":ObjectId("5c9b4bfe15e86fd1496b38cd")}> {"FirstValue":450,"SecondValue":1550});{ "승인된":true, "insertedId":ObjectId("5c9b4c1215e86fd1496b38ce")}> db.sumTwoFieldsDemo.insertOne({"FirstValue":Secon5dValue,"2 :2440});{ "승인됨" :true, "insertedId" :ObjectId("5c9b4c2715e86fd1496b38cf")}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

> db.sumTwoFieldsDemo.find().pretty();

그러면 다음과 같은 출력이 생성됩니다.

{ "_id" :ObjectId("5c9b4bfe15e86fd1496b38cd"), "FirstValue":150, "SecondValue":350}{ "_id":ObjectId("5c9b4c1215e86fdValue:4 "FirstValue":4 "FirstValue"), }{ "_id":ObjectId("5c9b4c2715e86fd1496b38cf"), "FirstValue":2560, "SecondValue":2440}

다음은 $project 연산자를 사용하여 MongoDB에서 2개의 필드를 합하는 쿼리입니다.

> db.sumTwoFieldsDemo.aggregate(... { "$project" :... {... 'First' :'$FirstValue',... 'Second' :'$SecondValue',... 'TotalValueOfBothFields' :{ '$add' :[ '$FirstValue', '$SecondValue' ] },... }... }... );

그러면 다음과 같은 출력이 생성됩니다.

{ "_id" :ObjectId("5c9b4bfe15e86fd1496b38cd"), "첫 번째":150, "두 번째":350, "TotalValueOfBothFields":500 }{ "_id":ObjectId("5c9b986fd815e") , "두 번째" :1550, "TotalValueOfBothFields" :2000 }{ "_id" :ObjectId("5c9b4c2715e86fd1496b38cf"), "첫 번째" :2560, "두 번째" :2440, "TotalValueOf50"