Gremlin查询以获取未与任何其他顶点连接的顶点列表?

时间:2018-10-17 14:46:33

标签: gremlin

我尝试了类似g.traversal()。V()。hasLabel(labelName).where(__。bothE()。count()。is(0))。toList();的方法它不起作用

1 个答案:

答案 0 :(得分:0)

我不明白您的方法为什么行不通-这是一个示例图,您可以看到它返回了正确的答案:

gremlin> g.addV('person').property('name','marko').as('m').
......1>   addV('person').property('name','stephen').as('s').
......2>   addV('person').property('name','alice').as('a').
......3>   addE('knows').from('m').to('s').iterate()
gremlin> g.V().where(bothE().count().is(0)).valueMap()
==>[name:[alice]]

也许您应该更仔细地检查数据,以确保它包含您期望的结构。当您的方法可行时,我想我会采用这种方法:

gremlin> g.V().where(__.not(bothE())).valueMap()
==>[name:[alice]]

通过这种方式,当您只是在寻找不存在任何边缘时,就不会强制所有边缘的count()来检测边缘的存在。