ニフクラmBaaSお役立ちブログ

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

NCMBクライアントがデータストア検索に対応しました

非公式ではありますがCLIでmBaaSの操作ができるncmbですが、データストアの検索に対応しました。

インストール方法

node.jsが必須になります。その上で、

npm install ncmb -g

にてインストールできます。

データストアの検索について

-qまたは--queryというオプションが追加されています。この中に、SQL風に条件を書くことで検索ができます。例えば、

$ ncmb datastore list TestClass -i message,count -l 100 -q 'message="Hello, NCMB!"'
┌──────────────┬───────┐
│ message      │ count │
├──────────────┼───────┤
│ Hello, NCMB! │       │
├──────────────┼───────┤
│ Hello, NCMB! │ 20    │
├──────────────┼───────┤
│ Hello, NCMB! │ 15    │
├──────────────┼───────┤
│ Hello, NCMB! │ 10    │
├──────────────┼───────┤
│ Hello, NCMB! │ 3     │
└──────────────┴───────┘

のように実行します。MongoSQL風なオペランドではなく、MySQLなどの一般的なSQL風に記述できます。

使えるオペランド

今のところ、

  • = または ==
  • <> または !=
  • <= または =<
  • >= または =>
  • <
  • >
  • in
  • not in

が使えます。データがあるかどうかを判断する場合は、 != null または = null が使えます。リレーションや他のクラスのポインタを使った検索、および位置情報には対応していません。

AND/ORについて

AND、OR検索も通常のSQL風に行えます。

countが5より大きく、かつmessageがHello, NCMB!のものを検索。

$ ncmb datastore list TestClass -i message,count -l 100 -q 'count > 5 and message="Hello, NCMB!"'
┌──────────────┬───────┐
│ message      │ count │
├──────────────┼───────┤
│ Hello, NCMB! │ 20    │
├──────────────┼───────┤
│ Hello, NCMB! │ 15    │
├──────────────┼───────┤
│ Hello, NCMB! │ 10    │
└──────────────┴───────┘

countが5より大きい、またはmessageがHello, NCMB!のものを検索。

$ ncmb datastore list TestClass -i message,count -l 100 -q 'count > 5 or message="Hello, NCMB!"'
┌──────────────┬───────┐
│ message      │ count │
├──────────────┼───────┤
│ Hello, NCMB! │       │
├──────────────┼───────┤
│ Hello, NCMB! │ 20    │
├──────────────┼───────┤
│ Hello, NCMB! │ 15    │
├──────────────┼───────┤
│ Hello, NCMB! │ 10    │
├──────────────┼───────┤
│ Hello, NCMB! │ 3     │
└──────────────┴───────┘

この他のオプションは次の通りです。

$ ncmb datastore list --help

  Usage: ncmb-datastore-list [options]

  Options:

    -h, --help                               output usage information
    -V, --version                            output the version number
    -a, --application_key [application_key]  Your application Key
    -c, --client_key [client_key]            Your client key
    -l, --limit [number]                     Get the data numbers.
    -s, --skip [number]                      How skip data numbers.
    -e, --except [cloumns]                   Ignore cloumns
    -q, --query [query]                      Search Query
    -i, --include [cloumns]                  Include cloumns

機能要望がありましたらmoongift/ncmb-cli: CLI tool for Nifty cloud mobile backendまでお寄せください。

ぜひ活用してください!