中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

Aggregation FW機能、SQLとの比較

使い方や例など詳細は本家のドキュメントを参照してください。

基本機能
オペレータ SQL相当 説明
$project SELECT 集計用のフィールドの削除・追加・定義など
$match WHERE 絞込み条件を指定
$limit LIMIT 対象行数指定
$skip LIMIT 読み飛ばし行数指定
$unwind - 配列フィールドを複数ドキュメントに展開(使わない使えない使いたくない)
$group GROUP BY 集計
$sort ORDER BY ソート
$geoNear - 座標フィールド近傍検索+ソート
集計($group)機能
集計オペレータ SQL相当 説明
$first - SQLでもやりたい事は多いのでうれしい
$last - 同上
$max MAX
$min MIN
$avg AVG
$sum SUM {$sum:1}でCOUNTを代用できる
$push - 全要素を配列として返す
$addToSet - $pushのユニーク版(どっちも便利)
論理演算子
オペレータ SQL相当 説明
$and AND
$or OR
$not NOT
比較演算子
オペレータ SQL相当 説明
$cmp - Rubyの<=>
$eq =
$gt >
$gte >=
$lt
$lte <=
$ne !=
算術演算子
オペレータ SQL相当 説明
$add +
$subtract -
$multiply *
$divide /
$mod MOD 余り
文字列操作
オペレータ SQL相当 説明
$concat CONCAT 文字列結合
$strcasecmp - 文字列比較($cmpの文字列版)
$substr SUBSTR 部分文字列
$toLower LOWER 小文字変換
$toUpper UPPER 大文字変換
日付関連
オペレータ SQL相当 説明
$dayOfYear ... 1-366
$dayOfMonth ... 1-31
$dayOfWeek ... 1-7
$year ...
$month ... 1-12
$week ... 0-53
$hour ... 0-23
$minute ... 0-59
$second ... 0-59(,60)
$millisecond ... 0-999
オペレータ SQL相当 説明
$cond ... 3項演算子
$ifNull NVL/IFNULL NULL値置換