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相当 | 説明 |
---|---|---|
$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 |