Couchbase如何使用PHP将额外的“行”插入到文档中

时间:2015-01-11 03:59:25

标签: php couchbase nosql

我对Couchbase和NoSQL很新。

我正在尝试使用Couchbase来存储在整个用户会话中生成的一长串ID。

每个ID一次存储一个,因此我无法创建具有多个值的文档。那么,在PHP中应该通过为每个ID创建一个单独的CB文档来完成,还是有办法在这个现有文档中插入一个新行?这就是我在MySQL中的表现

我想我可以先使用以下内容创建文档:

$doc = array(
        'id' => '123'
   );
    $connection->set("s_591", json_encode($doc));

然后通过添加到文档中已存在的数组来更新同一文档。

1 个答案:

答案 0 :(得分:0)

如果您只想存储每个用户会话的ID,那么最有效的方法是使用Couchbase API的append方法。追加,顾名思义是对字符串而不是JSON文档,所以你不必检索对象,更新并将其存储回Couchbase;您只发送要附加到服务器的字符串,Couchbase以原子方式将其添加到现有字符串。要检索所有ID,只需获取对象(这是一个字符串)并根据分隔符将其拆分。

所以要存储ID" 123"对于用户会话" s_591":

$connection->append("s_591", "123" . ";");

要取回所有ID:

$str = $connection->get("s_591");
$ids = explode(";", $str);