データストアのちょっとしたTipsを幾つか紹介します。
あるフィールドのデータを削除するには
データ一行全体を消すのはAPIもSDKによる操作も用意されていますが、一つのフィールドにあるデータを消す場合には null で更新します。そうすると、フィールドが存在しない状態とは異なりますが、データが消えます。
ただし、検索時にnullを指定するとデータが抽出されるので注意してください。
数値型は64bit整数が扱えます
例えば 9223372036854775807
は保存可能です。ただし、管理画面(JavaScript)から扱える数値の限界(32bit)を超えているため、表示が丸まってしまったり、保存しようとするとエラーになります。SDKやAPIからのみ操作可能です。
オブジェクトを検索できます
オブジェクト型で登録している場合、その内容で検索できます。例えば {"a": "b", "c": "d"}
で保存されている場合、 equalTo("field", {a: "b"})
で検索するといった具合です。ただし以上、以下や範囲などでは検索できないので注意してください。
includeは一つのみです
一つのクエリで呼び出せる関連オブジェクトは一つのみになります。 include を複数指定した場合、最初に子要素が呼び出せたものが優先になります。
skipはパフォーマンス上、よくありません
skipは最初の行から指定された数値分読み飛ばして、その上でlimitで指定された数分返却します。そのため、数千行であれば問題ありませんが数十万行ある時にスキップするとパフォーマンスが低下します。
以上、以下条件を付与するなどするとパフォーマンスが向上するかも知れません。
まとめ
データストアは簡単に使えますが、意外と奥深い仕組みになります。通常のRDBMSの感覚とは少し異なるので、データストアならではの使いこなし方を習得してください!