vijayashankard
vijayashankard

Reputation: 751

Upsert into sub document in couchbase using N1QL

I have document like below in couchbase.

{
  "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}"
  ]
}

I want to insert a new entry 'linkedIn' inside "structure" so that my doc will look like below,

{
  "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}"
  ]
}

May I know how to do it in N1QL ? The structure is not an array and it is a sub document. I am not sure how to do it in N1QL.

Upvotes: 1

Views: 358

Answers (1)

vsr
vsr

Reputation: 7414

Use UPDATE statement

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

Upvotes: 2

Related Questions