我对Couchbase和NoSQL很新。
我正在尝试使用Couchbase来存储在整个用户会话中生成的一长串ID。
每个ID一次存储一个,因此我无法创建具有多个值的文档。那么,在PHP中应该通过为每个ID创建一个单独的CB文档来完成,还是有办法在这个现有文档中插入一个新行?这就是我在MySQL中的表现
我想我可以先使用以下内容创建文档:
$doc = array(
'id' => '123'
);
$connection->set("s_591", json_encode($doc));
然后通过添加到文档中已存在的数组来更新同一文档。
答案 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);