Вставить в поддокумент в couchbase используя N1QL - PullRequest
1 голос
/ 13 марта 2020

У меня есть документ, как показано ниже в базе.

{
  "templateType": "EMAIL",
  "displayName": "Email for user",
  "structure": {
    "{twitterLink}": "http://www.twitter.com/",
    "{facebookLink}": "http://www.facebook.com",
    "{instagramLink}": "http://instagram.com",
     "{websiteLink}": "http://mavenir.com"
   },
  "backendPlaceholders": [
    "{ACTIVATION_URL}",
    "{USERNAME}"
  ]
}

Я хочу вставить новую запись 'connectedIn' внутри "структуры", чтобы мой do c выглядел следующим образом:

{
  "templateType": "EMAIL",
  "displayName": "Email for user",
  "structure": {
    "{twitterLink}": "http://www.twitter.com/",
    "{facebookLink}": "http://www.facebook.com",
    "{instagramLink}": "http://instagram.com",
    "{linkedIn}": "http://www.linkedin.com",
    "{websiteLink}": "http://mavenir.com",
    "{linkedIn}": "http://www.linkedin.com"
  },
  "backendPlaceholders": [
    "{ACTIVATION_URL}",
    "{USERNAME}"
  ]
}

Могу ли я узнать, как это сделать это в N1QL? Структура не является массивом и является вложенным документом. Я не уверен, как это сделать в N1QL.

1 Ответ

2 голосов
/ 13 марта 2020

Использовать оператор UPDATE

UPDATE default AS d
SET d.`structure`.`{linkedIn}` = "http://www.linkedin.com"
WHERE ....
...