【问题标题】:How add new key with update in Arangodb如何在 Arangodb 中使用更新添加新密钥
【发布时间】:2021-10-31 08:44:46
【问题描述】:

例如,我有以下文件:

{
    "name" : "sara",
    "family" : "schwimmer",
    "age" : 23,
    "Address": {
      "StateID": 12,
      "Phone": 0,
      "ZipCode": 0
    },
    "create_date": "2021-08-25 17:55:03"
  }

我想在地址中添加新键,如下所示:

"Address": {
          "StateID": 12,
          "Phone": 0,
          "ZipCode": 0,
          "StateName" : "NW"
        }

所以我将我的更新写成如下:

FOR p IN Person
    FOR a IN Area FILTER p.Address.StateID == a.ID
        UPDATE {_key : p._key, p.Address.StateName : a.Name} IN Person

运行此查询时出现错误,因此我尝试将 p.Address.StateName 转换为 [p.Address.StateName] 或 "p.Address.StateName" ,执行后成功执行但不添加新的StateName 键地址。如何编写查询以向地址添加新键?

【问题讨论】:

    标签: arangodb


    【解决方案1】:
    FOR p IN Person
        FOR a IN Area FILTER p.Address.StateID == a.ID
            UPDATE {_key : p._key, Address: MERGE(p.Address, { StateName: Name} ) } IN Person
    

    试试这个,使用MERGE 将现有的Address 键与您创建的新迷你对象合并,其中只有StateName

    其实这也是可能的:

    FOR p IN Person
        FOR a IN Area FILTER p.Address.StateID == a.ID
            UPDATE {_key : p._key, Address: { StateName: Name} } IN Person
    

    https://www.arangodb.com/docs/stable/aql/operations-update.html 此页面显示了UPDATE 上的一些可用选项,这些选项处理如何删除键、合并对象等。

    【讨论】:

      猜你喜欢
      • 2021-02-23
      • 2021-09-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-26
      相关资源
      最近更新 更多