2012-04-02 22 views
1

最近RiakをPHPで使用し始めました。JSONとしてRiakにデータを保存

どのようにJSONデータを正確に保存しますか? JSON文字列をRiakオブジェクトにプッシュするだけですか?

RiakにPHPクライアントは、データを格納するための以下を有する:

require_once('riak-php-client/riak.php'); 

# Connect to Riak 
$client = new RiakClient('127.0.0.1', 8098); 

# Choose a bucket name 
$bucket = $client->bucket('test'); 

# Supply a key under which to store your data 
$person = $bucket->newObject('riak_developer_1', array(
    'name' => "John Smith", 
    'age' => 28, 
    'company' => "Facebook" 
)); 

# Save the object to Riak 
$person->store(); 

これは、キー配列データの形態をとります。したがって、JSONの場合は、以下のようになりますか?

# Supply a key under which to store your data 
$person = $bucket->newObject('riak_developer_1', '{"name": "John Smith", "age": "28", "company": "Facebook"}'; 

私はRiakの検索機能を使用する必要がある場合にデータを保存する最良の方法を探しています。 map-reduceがより良く/より速くこの方法で動作するかどうかもわかりませんか?

ありがとうございます。

答えて

3

デフォルトで配列はRiakObject->store()のJSONに変換されています。何もする必要はありません。

あなたはPHPクライアントのソースを見れば、あなたはjsonizeTRUEときjson_encode()は(あなたがRiakBucket->newObject()を使用するときにそうである)store()方法で使用されて表示されます:あなたがした場合 https://github.com/basho/riak-php-client/blob/master/riak.php#L1513

http://127.0.0.1:8098/riak/test/riak_developer_1

:(あなたの配列を格納した後に)お使いのブラウザで次の操作を実行します

あなたが戻って取得したい:

{ "名前": "ジョン・スミス"、 "年齢":28、 "会社": "Facebookの"}

あなたが戻ってデータをフェッチする場合RiakからPHPクライアントを使用して、その逆を行い、元のPHP配列になります。

+0

ありがとうございます。私は実際にPHPのソースコードを見ていなかった。これは物事をもっとはっきりさせます。乾杯。 –

+0

心配する必要はありません。私たちは本当にそれをドキュメントに明示する必要があります。私はそれを書き留めます。私は更新する必要があるPHPクライアントのドキュメントのためのいくつかのことがあります。 –

関連する問題