【问题标题】:Couchbase how to insert additional 'row' into a document using PHPCouchbase 如何使用 PHP 在文档中插入额外的“行”
【发布时间】:2015-01-11 03:59:25
【问题描述】:

我对 Couchbase 和 NoSQL 很陌生。

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

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

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

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

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

【问题讨论】:

  • 这里没有足够的信息让我们帮助您。

标签: php couchbase nosql


【解决方案1】:

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

所以要为用户会话“s_591”存储 ID“123”:

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

要取回所有 ID:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多