NCMBはモバイル向けのBaaS(mobile Backend as a Service)ですが、サーバー側のデータとNCMB上のデータを連係させたいというニーズは良くあります。
そんなときには各言語向けのSDKがあると便利です。サーバー向けにはRuby、Python、PHP、Java、C#のSDKがあります(すべて公式サポート対象外の、コミュニティSDKという位置づけです)。
今回はGo言語向けのSDK開発をはじめたので、その使い方を紹介します。まずはデータストアへのデータ保存についてです。
ソースコード
ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseになります。
インストール
SDKのインストールは下記コマンドで行います。
go get -u github.com/NCMBMania/ncmb_go
インポート
続けてSDKをインポートします。
import (
"github.com/NCMBMania/ncmb_go"
)
初期化
NCMBより取得したアプリケーションキー、クライアントキーを使って初期化します。
ncmb := NCMB.Initialize("YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY")
データの検索
データの検索には Query を使います。引数は検索対象のクラス名です。
query := ncmb.Query("Hello")
後は条件を指定して、 FetchAll
メソッドでItemの配列が取得できます。
query := ncmb.Query("Hello")
query.EqualTo("msg1", "Hello")
items, err := query.FetchAll()
if err != nil {
fmt.Println(err)
}
fmt.Println(items[0].GetDate("createDate"))
利用できる検索条件(オペランド)は以下の通りです。
メソッド | 説明 |
---|---|
EqualTo(key string, value interface{}) | 指定したキーの値が指定した値と等しいアイテムを取得する |
NotEqualTo(key string, value interface{}) | 指定したキーの値が指定した値と等しくないアイテムを取得する |
LessThan(key string, value interface{}) | 指定したキーの値が指定した値未満のアイテムを取得する |
LessThanOrEqualTo(key string, value interface{}) | 指定したキーの値が指定した値以下のアイテムを取得する |
GreaterThan(key string, value interface{}) | 指定したキーの値が指定した値より大きいアイテムを取得する |
GreaterThanOrEqualTo(key string, value interface{}) | 指定したキーの値が指定した値以上のアイテムを取得する |
In(key string, value interface{}) | 指定したキーの値が指定した配列のいずれかと等しいアイテムを取得する |
NotIn(key string, value interface{}) | 指定したキーの値が指定した配列のいずれとも等しくないアイテムを取得する |
Exists(key string, value interface{}) | 指定したキーが存在するアイテムを取得する |
RegularExpression(key string, value string) | 指定したキーの値が指定した正規表現にマッチするアイテムを取得する |
InArray(key string, value interface{}) | 指定したキーの値が指定した配列のいずれかを含むアイテムを取得する |
NotInArray(key string, value interface{}) | 指定したキーの値が指定した配列のいずれを含まないアイテムを取得する |
AllInArray(key string, value interface{}) | 指定したキーの値が指定した配列のすべてを含むアイテムを取得する |
Near(key string, value GeoPoint) | 指定したキーの値が指定した地点の近くにあるアイテムを取得する |
WithinKilometers(key string, value GeoPoint, distance float64) | 指定したキーの値が指定した地点から指定した距離以内にあるアイテムを取得する |
WithinMiles(key string, value GeoPoint, distance float64) | 指定したキーの値が指定した地点から指定した距離以内にあるアイテムを取得する |
WithinRadians(key string, value GeoPoint, distance float64) | 指定したキーの値が指定した地点から指定した距離以内にあるアイテムを取得する |
WithinSquare(key string, southWest GeoPoint, northEast GeoPoint) | 指定したキーの値が指定した範囲内にあるアイテムを取得する |
また、以下も条件として追加できます。
プロパティ | 説明 |
---|---|
Limit | 取得する件数を絞り込みます(デフォルト10。最大1000) |
Order | データの並び順を指定します |
Skip | データの取得をスキップする件数を指定します |
まとめ
まだ基本的な機能しかありませんが、徐々にバージョンアップしていきます。
Go言語を使ってWebアプリケーションを開発している方は、そのデータ保存先としてNCMBを利用してみてください。