Как добавить новое поле в документ Couchbase, используя GO SDK - PullRequest
1 голос
/ 26 января 2020

Структура регистра ниже собирает данные, поступающие из пользовательского интерфейса регистрации:

register struct {
   Email string
   Password string }

Команда collection.insert создает следующий документ:

{  "id": "1",
   "email" : "john@example.com",
   "password" : "pwd"
}

Структура demographics собирает данные Исходя из пользовательского интерфейса Demographics:

demographics struct {
    Name string
   Address string
}

Я хочу обновить документ так, чтобы получился следующий документ:

 { "id": "1",
      "email" : "john@example.com",
      "password": "pwd",
      "name" : "John Doe",
      "address" : "100 Main Street"
    }

Используя N1QL, я мог бы написать следующее:

Update bucket set name="John Doe", address="100 Main Street" where id="1"

Не удалось найти API обновления в GO SDK.

1 Ответ

3 голосов
/ 27 января 2020

Я не Go разработчик, но я думаю, что то, что вы ищете, называется операциями "sub-document" в Couchbase (и это доступно во всех SDK Couchbase, включая Go)

То есть возможность вставлять / обновлять / удалять частей документа без перемещения всего объекта по проводам. Например, вот фрагмент кода для добавления поля «факс» в документ (команда upsert создает или заменяет поле по мере необходимости):

bucket.MutateIn("customer123", 0, 0).Upsert("fax", "311-555-0151", true).Execute()

Существует множество параметров вложенного документа: вставка, замена, существование, arrayappend, arrayprepend, et c.

...