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. トランザクション相当の機能はありますか?¶
一部対応しています。
バッチオペレーションのトランザクション機能を使用すると、 全件のリクエストが成功した場合にコミット、 一部のリクエストが失敗した場合はロールバックすることができます。
トランザクションを使用するには、いくつかの条件があります。 詳細は、 オブジェクトストレージ の 「バッチオペレーション」を参照して下さい。