以下查询仅返回 vlabel。
它也应该返回elabls吗?
match
return distinct labels;
根据“列表函数”部分中的文档,该labels()
函数只会返回 vlabels。
labels()
返回作为参数传递的顶点的 vlabel。将参数传递给标签函数时应该小心;当您使用 MATCH 子句找到与模式匹配的顶点、分配变量并将该变量作为参数传递时,顶点本身不能作为参数传递给标签函数,而必须始终作为变量传递。
如果您想要边缘/关系,文档说明使用该relationships()
功能:
relationships()
返回作为参数传递的路径中存在的边。将参数传递给关系函数时应该小心;当您使用 MATCH 子句找到与模式匹配的路径、分配变量并将该变量作为参数传递时,路径本身不能作为参数传递给关系函数,但必须始终作为变量传递。与计数功能一起使用时,可以找到路径中的边数。
因此,要同时列出 vlabels 和 elabels,您需要类似以下查询(注意我们分配了p
传递给relationships
函数的结果路径):
MATCH p=(n)-[r]->(m)
RETURN DISTINCT labels(n), relationships(p), labels(m);
-- Example results
labels | relationships | labels
----------+-------------------------------------------+----------
["part"] | [used_by[19.3][18.4,18.5]{"quantity": 1}] | ["part"]
["part"] | [used_by[19.4][18.5,18.6]{"quantity": 2}] | ["part"]
["part"] | [used_by[19.5][18.4,18.7]{"quantity": 1}] | ["part"]
(3 rows)