以下查询仅返回vlabel。
它也应该返回elabls吗?
match
return distinct labels;
答案 0 :(得分:0)
根据“列表函数”部分的the docs,labels()
函数将仅返回vlabel。
labels()
返回作为参数传递的顶点的vlabel。将参数传递给label函数时,应格外小心;当您使用MATCH子句找到与模式匹配的顶点,分配变量并将该变量作为参数传递时,该顶点本身不能作为参数传递给label函数,而必须始终作为变量传递。>
如果您想要边缘/关系,则文档声明使用relationships()
函数:
relationships()
返回作为参数传递的路径中存在的边。将参数传递给Relationships函数时应小心;当使用MATCH子句找到与模式匹配的路径,分配变量并将该变量作为参数传递时,该路径本身不能作为参数传递给Relationships函数,而必须始终作为变量传递。与count函数一起使用时,可以找到路径中的边数。
因此,要同时列出vlabel和elabel,您将需要类似以下查询的内容(请注意,我们将生成的路径分配给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)