AWS测试场景下,如何为NebulaGraph顶点添加列表类型属性?
在NebulaGraph中为顶点动态追加列表类型属性(以Person的orderTime为例)
要实现给Person类型顶点的orderTime列表属性动态追加时间戳,按以下步骤操作即可:
1. 创建包含列表类型属性的标签
首先得确保Person标签的orderTime属性定义为列表类型,存储时间戳用list<int64>,如果是时间字符串就用list<string>:
CREATE TAG Person(orderTime list<int64>);
2. 初始化顶点(可选但推荐)
如果是新顶点,可先初始化orderTime为空列表,避免后续追加时报错:
INSERT VERTEX Person(orderTime) VALUES "person1":([]);
要是已有顶点且未设置过orderTime属性,也能用UPDATE语句补初始化:
UPDATE VERTEX "person1" SET Person.orderTime = [];
3. 每次购买时追加时间戳
用户每完成一次购买,执行UPDATE语句,用NebulaGraph内置的append()函数把新时间戳追加到列表末尾:
// 第一次追加 UPDATE VERTEX "person1" SET Person.orderTime = append(Person.orderTime, 1672898563); // 第二次追加 UPDATE VERTEX "person1" SET Person.orderTime = append(Person.orderTime, 1672897563); // 第三次追加 UPDATE VERTEX "person1" SET Person.orderTime = append(Person.orderTime, 1672896563);
4. 验证结果
执行查询语句查看顶点属性,就能得到你期望的结构:
FETCH PROP ON Person "person1" YIELD properties(vertex);
返回结果示例:
+-------------------------------------------+ | properties(VERTEX) | +-------------------------------------------+ | {orderTime: [1672898563, 1672897563, 1672896563]} | +-------------------------------------------+
注意事项
- 列表元素必须是同一类型,不能同时混存int64和字符串
- 如果用时间字符串,要保证格式统一(比如
"2023-01-05 10:22:43"),同时标签定义要改成list<string> - 确保你的NebulaGraph版本支持列表类型(3.0及以上版本均支持)
内容的提问来源于stack exchange,提问作者randomv
相关产品推荐
相关产品推荐

