shiichan

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

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

AWS What's New aws.amazon.com

なにが発表されたの?

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 への移行を検討している人や、集計クエリをよく書く人に刺さるアップデートだよ!