NCMBでは管理画面よりデータをインポートできます。既存データをインポートしたり、バックアップを戻す際などに利用できます。
フォーマットはテキスト、CSV、JSONを利用できますが、テキストやCSVでは文字列や数値くらいしか利用できません。値の型を指定する場合にはJSONを利用してください。
この記事ではJSONを使った場合のデータフォーマットについて解説します。
JSONファイルの基本形
JSONファイルの基本形です。必ず results
キーが必要です。そのresultsキーは配列で、各行のデータが入ります。
{ "results": [ { /* 一行目のデータ*/}, { /* 二行目のデータ*/}, { /* 三行目のデータ*/}, : ] }
各行は "フィールド名": "値"
の形式になります。
型について
ではNCMBで扱えるデータ型ごとに、その書き方を紹介します。
文字列型
文字列型は単純にダブルクォートで囲んでください。
"string": "文字列"
数値型
数値の場合はダブルクォートは不要です。整数、小数点どちらも扱えます。
// 整数 "number1": 100 // 小数点あり "number2": 100.05
真偽値
真偽値は true または false を指定します。
"boolean": true
配列型
配列は []
で全体を覆って、カンマ区切りで値を指定します。各要素の型は自由です。
"array": ["文字", 100, false]
オブジェクト
オブジェクトはJSONフォーマットで指定します。
"obj": { "a": "b", "c": 100 }
日付型
日付型で登録する場合は __type
に Date
、そして iso
キーにISO8601形式で日時を文字列で指定します。
"date": { "__type": "Date", "iso": "2022-02-08T04:10:57.632Z" }
位置情報型
位置情報は __type
に GeoPoint
、そして緯度経度を latitude
と longitude
で指定します。
"geo": { "__type": "GeoPoint", "latitude": 35.681382, "longitude": 139.76608399999998 }
ポインター
他のデータと関連付けるポインター型は次のように指定します。 __type
は Pointer
、className
に関連付けるクラス名、 objectId
に関連付けるデータのobjectIdを指定します。
"pointer": { "__type": "Pointer", "className": "Store", "objectId": "AU7DWFp7d3dhnnuL" }
注意点
以下のキーはデータストアであらかじめ利用しているので指定しません。
- objectId
- createDate
- updateDate
- acl
また、インポートできるのはデータストアのクラスに限定されます。ユーザ、デバイストークン、プッシュ通知、ロールなどの規定のクラスはインポートできません。もしインポートしたい場合にはncmb-cliをご利用ください。
まとめ
JSONファイルを使ってインポートすれば、細かな型指定ができるので、より適切に取り込めます。ぜひお試しください。