如何在 Arangodb 中通过更新添加新密钥
How add new key with update in Arangodb
例如,我有以下文档:
{
"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 键。如何编写查询以向地址添加新键?
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
上的一些可用选项,这些选项处理如何删除密钥、合并对象等。
例如,我有以下文档:
{
"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 键。如何编写查询以向地址添加新键?
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
上的一些可用选项,这些选项处理如何删除密钥、合并对象等。