Gremlin代码查找具有特定属性的1个顶点

时间:2019-10-18 19:47:56

标签: gremlin

我想返回一个节点,其中该节点具有作为特定uuid的属性,我只想返回其中一个(可能有多个匹配项)。

g.V().where('application_uuid', eq(application_uuid).next()

以上查询是否会返回所有节点?我该如何返回1?

我也想获取此节点的属性映射。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您只需这样做:

g.V().has('application_uuid', application_uuid).next()

但更好的是包含顶点标签的签名(如果可以的话):

g.V().has('vlabel', 'application_uuid', application_uuid).next()

如果您明确只需要一个,可能会更进一步:

g.V().has('vlabel', 'application_uuid', application_uuid).limit(1).next()

,以便图形提供程序和/或Gremlin Server都知道您的意图是仅next()返回一个结果。这样,您可以节省一些额外的网络流量/处理。

答案 1 :(得分:0)

这是一个非常基本的查询。您应该阅读有关gremlin的更多信息。我可以推荐Practical Gremlin这本书。 对于查询,您可以使用has来按属性进行过滤,并使用limit来获取特定数量的结果:

g.V().has('application_uuid', application_uuid).limit(1).next()

在没有limit的情况下运行查询也将返回单个结果,因为查询结果是迭代器。使用toList()将在数组中返回所有结果。