Arangodb AQL UPDATE用于对象的内部字段

Vas*_*zev 5 nosql arangodb aql

给出以下示例收集文档:

{
  "timestamp": 1413543986,
  "message": "message",
  "readed": {
    "8": null,
    "9": null,
    "22": null
  },
  "type": "1014574149174"
}
Run Code Online (Sandbox Code Playgroud)

如何使用"readed"键更新对象中特定键的值?例如,键"8"的更新值:

...
   "8": 10,
...
Run Code Online (Sandbox Code Playgroud)

fce*_*ler 5

您可以使用MERGE或MERGE_RECURSIVE,如下所示:

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

合并将合并文档,后面的值将覆盖以前的值.有关详细信息,请参阅http://docs.arangodb.org/Aql/Functions.html.