0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Go言語向けNCMB SDKの使い方(データストアの検索)

Posted at

NCMBはモバイル向けのBaaS(mobile Backend as a Service)ですが、サーバー側のデータとNCMB上のデータを連係させたいというニーズは良くあります。

そんなときには各言語向けのSDKがあると便利です。サーバー向けにはRuby、Python、PHP、Java、C#のSDKがあります(すべて公式サポート対象外の、コミュニティSDKという位置づけです)。

今回はGo言語向けのSDK開発をはじめたので、その使い方を紹介します。まずはデータストアへのデータ保存についてです。

ソースコード

ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseになります。

NCMBMania/ncmb_go

インストール

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を利用してみてください。

mBaaSでサーバー開発不要! | ニフクラ mobile backend

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?