You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gremlin的path中获取多个属性?当前仅返回单个属性

解决Gremlin路径查询同时返回多个属性的问题

我来帮你搞定这个问题~你当前的Gremlin查询之所以只拿到一个属性,是因为path().by('title').by('name')的逻辑是交替为路径中的每个节点选择属性——第一个节点取title,第二个取name,第三个又回到title,以此类推,并不是让每个节点都返回两个属性。

要让路径里的每个节点同时输出title和name,有两种常用的写法:

方法1:用valueMap直接获取指定属性

valueMap()可以把你需要的属性以键值对的形式返回,每个节点都会包含这两个属性(如果节点存在该属性的话):

g.V().repeat(out()).until(has('title','school')).path().by(valueMap('title','name'))

输出会类似这样的格式:[[title:["A"]], [name:["B"], title:["school"]]],能清晰展示每个节点的目标属性。

方法2:用project构建结构化输出

如果你想要更规整的输出结构,比如每个节点都明确是包含title和name的对象,可以用project()来定义输出结构:

g.V().repeat(out()).until(has('title','school')).path().by(project('title','name').by('title').by('name'))

这种写法的输出会更清晰,类似:[[title: "A"], [name: "B", title: "school"]],即使某个节点没有其中一个属性,也会显示为null(具体取决于你的图数据库实现)。

两种方法都能满足你同时获取两个属性的需求,你可以根据自己的输出偏好来选择~

内容的提问来源于stack exchange,提问作者Akhil Konduru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:35:32