我试图找出图数据库中的特定节点类型根。在Gremlin查询中,我可以找到计算根节点。
query = """g.V().hasLabel("A")
.filter(
out().hasLabel("A").count().is(gt(1))
.and()
.in().hasLabel("A").count().is(eq(0))
)
.values("title")"""
以上查询将返回根节点标题。如何在cypher查询中找到节点类型的根节点。
您可以使用WHERE子句中的模式来查找没有传入关系的节点。
如果必须考虑节点的标签,请在模式中包含:
MATCH (root:A)
WHERE NOT (:A)-->(root) AND size((root)-->(:A)) > 1
...
如果您不需要了解有关连接节点的任何信息,并且您希望确保根本没有任何关系,但至少有一个关闭,您可以省略另一个节点的标签,并且查询变得更有效,因为关系类型/方向度信息在节点本身上,因此不需要扩展:
MATCH (root:A)
WHERE NOT ()-->(root) AND size((root)-->()) > 1
...