Couchbase, как вставить дополнительную «строку» в документ, используя переполнение стека

Я очень новичок в Couchbase и NoSQL.

Я пытаюсь использовать Couchbase для хранения длинного списка идентификаторов, которые генерируются в течение сеанса пользователя.

Каждый идентификатор хранится по одному, поэтому я не могу создать документ с несколькими значениями. Итак, в PHP это должно быть сделано путем создания отдельного документа CB для каждого идентификатора или есть способ вставить новую строку в этот существующий документ? Вот как бы я сделал это в MySQL

Я предполагаю, что я могу сначала создать документ, используя что-то вроде этого:

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

а затем обновить этот же документ, добавив в массив, который уже существует в документе.

0

Решение

Если вы хотите хранить идентификаторы только для каждого пользовательского сеанса, то наиболее эффективным способом будет использование присоединять метод API Couchbase. Добавить, поскольку имя подразумевает работу со строками, а не с документами JSON, поэтому вам не нужно извлекать объект, обновлять и сохранять его обратно в Couchbase; вы только посылаете строку, которая будет добавлена ​​на сервер, а Couchbase добавляет ее к существующей строке атомарно. Чтобы получить все идентификаторы, просто получите объект (который является строкой) и разделите его в соответствии с разделителем.

Итак, чтобы сохранить идентификатор «123» для пользовательской сессии «s_591»:

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

Чтобы вернуть все идентификаторы:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector