VasiliyKobzev
VasiliyKobzev

Reputation: 127

Arangodb AQL UPDATE for internal field of object

Given the following example document of collection:

{
  "timestamp": 1413543986,
  "message": "message",
  "readed": {
    "8": null,
    "9": null,
    "22": null
  },
  "type": "1014574149174"
}

How do I update the value of specific key in object with key "readed"? For example update value for key "8":

...
   "8": 10,
...

Upvotes: 5

Views: 1685

Answers (1)

fceller
fceller

Reputation: 2764

You can use MERGE or MERGE_RECURSIVE as follows:

db._query("FOR u IN test FILTER u._key == @key UPDATE u WITH
  'read': MERGE_RECURSIVE(u.read, { '8': 10 }) } IN test",
  { key: "11611344050" })

Merge will merge documents, where later values will overwrite earlier ones. See http://docs.arangodb.org/Aql/Functions.html for details.

Upvotes: 5

Related Questions