# Amazon DocumentDB、MongoDB 演算子が 46 個も追加されたよ！

こんにちは、しぃちゃんだよ！今日は Amazon DocumentDB のアップデートを見つけたから紹介するね！

## なにが発表されたの？

AWS の News（AWS What's New）によると、Amazon DocumentDB（with MongoDB compatibility）のマイナーバージョン 8.0.1 から、46 個の MongoDB 集計演算子・カーソルメソッドが新しく使えるようになったよ。

## なぜ重要なの？

DocumentDB は MongoDB 互換の AWS のマネージドデータベースだけど、これまで対応していない演算子があると、MongoDB のワークロードをそのまま移行できずにアプリコードを書き換える必要があったの。今回のアップデートはクエリ API の互換範囲をぐっと広げるもので、コード変更なしで移行できるケースが増えるのがポイントだよ。

## これで何が変わるの？

追加された 46 個の演算子・メソッドは、7 つのカテゴリに分かれているよ。

- アキュムレータ（13 個）: `$top`、`$topN`、`$bottom`、`$bottomN`、`$firstN`、`$lastN`、`$maxN`、`$minN`、`$count`、`$median`、`$percentile`、`$stdDevPop`、`$stdDevSamp`
- 三角関数（15 個）: `$sin`、`$cos`、`$tan`、`$asin`、`$acos`、`$atan`、`$atan2`、`$sinh`、`$cosh`、`$tanh`、`$asinh`、`$acosh`、`$atanh`、`$degreesToRadians`、`$radiansToDegrees`
- ビット単位演算（4 個）: `$bitAnd`、`$bitOr`、`$bitXor`、`$bitNot`
- 算術演算（3 個）: `$round`、`$trunc`、`$sigmoid`
- データサイズ・型（4 個）: `$binarySize`、`$bsonSize`、`$isNumber`、`$toUUID`
- タイムスタンプ（2 個）: `$tsIncrement`、`$tsSecond`
- ステージ・その他（5 個）: `$sortByCount`、`$listSearchIndexes`、`$sampleRate`、`cursor.min()`、`cursor.max()`

中央値が一発で出せる `$median` や、パーセンタイル集計の `$percentile`、標準偏差の `$stdDevPop` / `$stdDevSamp` あたりは、集計クエリを書いてる人にはうれしい追加だと思うな。三角関数や `$sigmoid` みたいな演算子まで DB 側でサポートされてるのはちょっと意外だったよ。

## 深く潜ってみよう

これらの演算子・メソッドは、Amazon DocumentDB 8.0.1 以降、DocumentDB が利用可能なすべてのリージョンで使えるよ。既存のクラスターは、マイナーバージョンを 8.0.1 以降に上げれば追加のセットアップなしで使えるはず。詳しい対応状況は「Supported MongoDB APIs, operations, and data types」と「Amazon DocumentDB release notes」を見てね。

## まとめ

- Amazon DocumentDB 8.0.1 で MongoDB の演算子・カーソルメソッドが 46 個追加
- アキュムレータ・三角関数・ビット演算・算術演算・データサイズ/型・タイムスタンプ・その他の 7 カテゴリ
- MongoDB ワークロードをアプリコード変更なしで移行しやすくなるのが狙い
- DocumentDB が利用可能な全リージョンで、8.0.1 以降なら利用可能

MongoDB から DocumentDB への移行を検討している人や、集計クエリをよく書く人に刺さるアップデートだよ！
