我有以下文件为例:
{
"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键到地址。我如何编写一个查询来添加新的键到地址?
1条答案
按热度按时间mbzjlibv1#
试试看,使用
MERGE
将现有的Address
键与您创建的只有StateName
的新迷你对象合并。其实,这也可能是可能的:
https://www.arangodb.com/docs/stable/aql/operations-update.html此页显示了
UPDATE
上的一些可用选项,用于处理如何删除键、合并对象等。