7. JSONオブジェクトストレージ

7.1. MongoDB の Timestamp は使用できますか?

BaaS サーバ v7.0 より、MongoDB Extended JSON仕様 を使用して表記することができるようになっています。 詳細は デベロッパーマニュアル: オブジェクトストレージ の「JSON仕様について」 を参照してください。

なお、BaaS サーバv6.5以下では Extended JSON は利用できませんので、その場合は Epoch time 数値や ISO8601形式の文字列などを使用してください。

7.2. 64bit 整数値は使用できますか?

使用できます。

ただし、JavaScript では数値がすべて 64bit 倍精度(IEEE 754-2008 binary64。 符号1ビット、指数部11ビット、仮数部52ビット)となる関係上、 JavaScript SDK では 64bit整数値は使用できません。

JavaScript で 64bit整数を使用したい場合は、文字列に変換して格納してください。

7.3. ドキュメント挿入・更新時のバリデーション機能はありますか?

現行のバージョン(v7以下)ではサポートしていません。

7.4. クエリ時の検索数に上限はありますか?

REST API 仕様書では「limit 値に制限がかけられている場合がある」 という記載がありますが、現在のバージョンでは上限は掛けておりません。

7.5. 大量データをクエリすると 500 エラーになります (sort条件あり)

インデックスを設定していないフィールドを sort 条件に指定して大量のデータを クエリすると、500エラーが発生します。

これは MongoDB の制限で、インデックスが使用できない場合の Sort オペレーションでは ドキュメントの総量(+オーバヘッド)が 32MB 未満でなければならないためです。 (詳細は MongoDB LImits and Thresholds - Sort Operations を参照してください)

このような場合は、sort 条件を設定するフィールドにインデックスを張るようにしてください。

7.6. トランザクション相当の機能はありますか?

一部対応しています。

バッチオペレーションのトランザクション機能を使用すると、 全件のリクエストが成功した場合にコミット、 一部のリクエストが失敗した場合はロールバックすることができます。

トランザクションを使用するには、いくつかの条件があります。 詳細は、 オブジェクトストレージ の 「バッチオペレーション」を参照して下さい。