2014-04-08 2 views
0

개체의 구조는 다음과 같다 :

db.transactions.aggregate({ 
    $group:{ 
     _id: null, 
     'total': {$sum: "$package.price"} 
    } 
}) 

과 :

{ 
    "_id" : ObjectId("53434bfe234416601c8b4567"), 
    "package" : { 
     "id" : "3", 
     "title" : "P3", 
     "price" : "8.00", 
     "votes" : "8", 
     "created_at" : "2014-04-08 00:29:35", 
     "updated_at" : "2014-04-08 00:31:39" 
    }, 
    "status" : "success", 
    "user_id" : "5341dd9c234416de758b4570", 
    "updated_at" : ISODate("2014-04-08T01:08:52.168Z"), 
    "created_at" : ISODate("2014-04-08T01:08:14.849Z") 
} 

는 난 할 노력하고있어이와 package.price의 합계를 수집하다 total 여기에, 항상 int 0입니다 결과입니다 :

{ 
    "result" : [ 
     { 
      "_id" : null, 
      "total" : 0 
     } 
    ], 

    "ok" : 1 
} 
+4

이는'package.price'의 값이 문서의 숫자 값이 아닌 String이기 때문에 아마도 –

+0

입니다. , 바보 나.. – Mulkave

답변

0

사람들을위한 MI 다시 @Anand으로 말하면, 이것은 필드의 유형과 관련이 있습니다. int, double, float 등과 같이 항상 "summable"타입인지 확인하십시오.