MongoDBでsumをする
コレクション内の全ドキュメントの合計を計算する
クエリ
> db.pageimages.aggregate({
$group: {
'_id': '',
'count': { '$sum': '$fileSize' }
}
});
_id
の値は、空文字でいいcount['$sum']
の値には、集計したいフィールドを指定する- フィールド名を指定する際には
$
を付ける
結果
{
"result" : [
{
"_id" : "",
"count" : NumberLong("811097663443")
}
],
"ok" : 1
}
グループ単位で合計を計算する
クエリ
> db.pageimages.aggregate({
$group: {
'_id': '$fileType',
'count': { '$sum': '$fileSize' }
}
});
_id
の値には、グループとしたいフィールド名を指定する
結果
"result" : [
{
"_id" : "BMP",
"count" : 23633694
},
{
"_id" : "GIF",
"count" : NumberLong("12388580658")
},
{
"_id" : "PNG",
"count" : NumberLong("24913507286")
},
{
"_id" : "JPEG",
"count" : NumberLong("773769954352")
},
{
"_id" : null,
"count" : 0
}
],
これでファイルタイプ別のサイズがとました。
っていうか、いまどきBMPをサーバーにアップしているやつ誰だよ…