エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

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をサーバーにアップしているやつ誰だよ…