有可能在Apache AGE中重命名属性吗?



文档没有提到太多。我正在写一篇博客文章,我需要将一个属性重命名为其他东西。Apache AGE支持重命名属性吗?这里也没有SET子句页面的信息

嘿,你可以通过使用两个连续的操作来实现[SET使用新的属性名,然后删除旧的属性名]

的例子:

1-查询现有数据(vid是将要更改的属性)

SELECT * 
FROM cypher('test', $$
MATCH (a:Person{vid:1}) return a
$$) as (e agtype);
e                                                 
--------------------------------------------------------------------------------------------------
{"id": 844424930131972, "label": "Person", "properties": {"vid": 1, "title": "backend"}}::vertex
(1 row)

2- SET THEN REMOVE

SELECT * 
FROM cypher('test', $$
MATCH (a:Person{vid:1}) set a.vcid = a.vid remove a.vid
$$) as (e agtype);
e 
---
(0 rows)

3-测试旧查询是否还存在

SELECT * 
FROM cypher('test', $$
MATCH (a:Person{vid:1}) return a                       
$$) as (e agtype);
e 
---
(0 rows)

4-测试新更改的属性

SELECT * 
FROM cypher('test', $$
MATCH (a:Person{vcid:1}) return a
$$) as (e agtype);
e                                                 
---------------------------------------------------------------------------------------------------
{"id": 844424930131972, "label": "Person", "properties": {"vcid": 1, "title": "backend"}}::vertex
(1 row)

要在AGE中重命名属性,必须使用SETREMOVE。将当前属性设置为新属性,然后在密码查询中删除当前/旧属性。下面是一个例子:

SELECT * 
FROM cypher('graphname', $$
MATCH (n:Label) SET n.newprop = n.oldprop REMOVE n.oldprop
$$) as (n agtype);