ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

NCMB用のPython SDKを開発中です(データストアの検索)

f:id:mbaasdevrel:20201019182214p:plain

PythonはIoT、機械学習をはじめ、幅広い分野で使われているプログラミング言語になります。JavaScriptと同様に、覚えておくと利用範囲の広いプログラミング言語といえるでしょう。

そんなPythonとNCMBを組み合わせる際に利用できる、Python SDKを開発しています(非公式)。まだまだ機能は少ないですが、徐々にバージョンアップしていきます。

今回はデータストアの検索処理の書き方です。

GitHub - goofmint/ncmb_py: NCMBのPython SDKです

インストール

インストールはpipコマンドで行います。

pip install NCMB

初期化

初期化処理は次のように行います。

from NCMB.Client import NCMB
ncmb = NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')

検索用クラスのインスタンスを作成

まず ncmb.Query で検索用インスタンスを取得します。Python は検索対象のクラス名です。

query = ncmb.Query('Python')

条件を適用する

次に条件を適用します。たとえばイコール条件であれば次のように指定します。

query.equal_to('number', 100)

検索を実行する

検索の実行は fetch_all メソッドになります。結果はNCMBObjectの配列になります。

ary = query.fetch_all()

検索条件について

検索条件はほかにも次のように用意しています。ほかのSDKに寄せていますが、inは予約後なので in_value にしています。

equal_to(self, key, value):
greater_than_or_equal_to(self, key, value):
not_equal_to(self, key, value):
less_than(self, key, value):
less_than_or_equal_to(self, key, value):
greater_than(self, key, value):
in_value(self, key, values):
not_in(self, key, values):
exists(self, key, exist = True):
regular_expression_to(self, key, regex):
in_array(self, key, values):
not_in_array(self, key, values):
all_in_array(self, key, values):

その他の条件指定

検索条件のほか並び替えや取得件数の指定もできます。

query.limit(1)  # 取得件数指定
query.order('updateDate') # 並び替え
query.skip(100) # スキップする件数

コードについて

Python SDKはオープンソース・ソフトウェア(MIT License)になります。GitHub - goofmint/ncmb_py: NCMBのPython SDKですにて公開されています。

まとめ

Python SDKを使うことで、IoTや機械学習分野でmBaaSを使いやすくなります。アプリと連携させたり、サーバ間でのデータやり取りなど、幅広くご利用ください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。