LoginSignup
0
1

More than 5 years have passed since last update.

NCMB PHP SDKの使い方:データストア

Last updated at Posted at 2017-07-12

NCMB PHP SDKでデータストアを扱う方法を解説します。

データストアへの保存

use Ncmb\GeoPoint;
use Ncmb\Object;

$className = 'example';
$obj = new Object($className);
$obj->serialId = 1; // 整数
$obj->name = 'Example Object';  // 文字列
$obj->timestamp = new DateTime();  // 時間
$obj->position = new GeoPoint(35.695985, 139.689318); // 緯度経度
$obj->isValid = true // 真偽値
$obj->save();

データストアに保存するには、\Ncmb\Object クラスのインスタンスを作成し、そのプロパティに保存する値をセットした後に save() メソッドを呼び出します。

値のセットはプロパティの代わりに set() メソッドを呼ぶことでも可能です。

$obj->set('someKey', 'some variable');

objectId を指定したデータストアの読み込み

use Ncmb\Object;

$className = 'example';
$objectId = '3Dw7EnByRYvtZ3rh';
$obj = new Object($className, $objectId);
$obj->fetch(); // 読み込み実行

echo $obj->name;

データストアから値を読み込むには、objectId がすでに分かっている場合にはそれを指定して \Ncmb\Object クラスのインスタンスを作成し、fetch() メソッドを呼びだすのが簡単です。

Query を使ったデータストアの検索

objectId が分からないデータの読み込みや、特定条件にマッチしたデータを取得したい場合は、\Ncmb\Query クラスを使用します。

use Ncmb\Query;

$className = 'example';
$query = new Query($className);
$query->equalTo('serialId', 1);
$obj = $query->first();
echo $obj->name;

Query オブジェクトの生成

検索したいデータストアのクラス名を渡して \Ncmb\Query クラスのインスタンスを作成します

$query = new Query($className);

検索条件の指定

\Ncmb\Query オブジェクトに対して検索条件を指定するメソッドを追加します。

$query->equalTo('serialId', 1);

検索条件を指定するメソッドには以下のものがあります。

  • equalTo : 値が等しい
  • notEqualTo: 値が等しくない
  • lessThan: 指定した値より小さい ($lt)
  • greaterThan: 指定した値より大きい ($gt)
  • lessThanOrEqual: 指定した値以下 ($lte)
  • greaterThanOrEqual: 指定した値以上 ($gte)
  • containedIn: 値が含まれる ($in)
  • notContainedIn: 値が含まれない ($nin)
  • exists: 値が存在する ($exists)
  • doesNotExists: 値が存在しない
  • regex: 正規表現にマッチ ($regex)
  • inArray: 配列に含まれる ($inArray)
  • notInArray: 配列に含まれない ($ninArray)
  • containsAll: すべての値が含まれる ($all)
  • matchesQuery: サブクエリに合致するデータをポインタとして持っている ($inQuery)
  • relatedTo: オブジェクトIDが指定された親のリレーションにひもづく子 ($relatedTo)

検索の実行と結果の取得

find メソッドを呼び出すと、検索結果が返ります。検索に何もマッチしない場合は空配列になります。

$results = $query->find();

先頭の一つだけ欲しい場合は first メソッドを使います。

$result = $query->first()
0
1
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
1