将数据附加到 arangodb 中的嵌套列表(子列表)

Append data to a nested list (sublist) in arangodb

如果这是一个愚蠢的问题,我深表歉意,但它让我抓狂。我是 arango 的新手,但通常我可以得过且过,但这次不行。

我想将另一组项目插入到下面数据中名为 'type' 的列表中。我可以使用更新修改子列表的内容,但似乎无法弄清楚如何附加到列表。

在 MAG_TEST 中的文档 过滤器 doc._key == “3704086” 插入 {"Name":"Mary","datestart":"2017 年 3 月 16 日"} 插入 doc.type

所以这个 [ { "_key": "3704086", "_id": "MAG_TEST/3704086", "_rev": "3704109", "name": "Flip", "type":[ { "name": "flop", "sdate": "2016 年 4 月 13 日" }, { "name": "flap", "sdate": "2017 年 4 月 14 日" } ] } ]

变成这样 [ { "_key": "3704086", "_id": "MAG_TEST/3704086", "_rev": "3704109", "name": "Flip", "type":[ { "name": "flop", "sdate": "2016 年 4 月 13 日" }, { "name": "flap", "sdate": "2017 年 4 月 14 日" }, { "name": "fling", "sdate":“2018 年 4 月 18 日” } ] } ]

这是一个示例,说明如何使用 UPDATEAPPEND 来更新包含对象数组的属性:

FOR doc IN MAG_TEST
FILTER doc._key == "3704086"
UPDATE doc WITH { type: APPEND(doc.type, {"Name":"Mary","datestart":"16 March 2017"})} IN MAG_TEST

在这个例子中你:

  • FILTER找到你要更新的文档
  • UPDATE找到的文档
  • 使用WITH显示您要更新的属性
  • type 属性标识为正在更新
  • 使用APPEND将新对象添加到doc.type
  • 的现有值
  • 指定将存储更新文档的集合,MAG_TEST

希望对您有所帮助。

Documentation on the UPDATE command

Documentation on Array functions

注意:不要使用我上面提到的MERGEMERGE用于将两个文档的属性合并为一个文档。对于连接数组,APPEND 是您可以使用的一个选项。了解其他数组函数可以帮助解决您在从数组中操作和获取数据时肯定会遇到的用例。