我想返回一个节点,其中该节点具有作为特定uuid的属性,我只想返回其中一个(可能有多个匹配项)。
g.V().where('application_uuid', eq(application_uuid).next()
以上查询是否会返回所有节点?我该如何返回1?
我也想获取此节点的属性映射。我该怎么办?
答案 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()
将在数组中返回所有结果。