【发布时间】:2020-10-16 12:38:32
【问题描述】:
所以我有一个这样的 gremlin 查询:
g.V().hasLabel('Person').valueMap(true, 'name')
现在这将创建一个包含字段/列“标签”、“ID”和“名称”的值映射,但如何从中排除“ID”?
我只希望在结果中包含“标签”和“名称”。
非常感谢任何帮助,谢谢! :)
【问题讨论】:
标签: database search graph gremlin tinkerpop
所以我有一个这样的 gremlin 查询:
g.V().hasLabel('Person').valueMap(true, 'name')
现在这将创建一个包含字段/列“标签”、“ID”和“名称”的值映射,但如何从中排除“ID”?
我只希望在结果中包含“标签”和“名称”。
非常感谢任何帮助,谢谢! :)
【问题讨论】:
标签: database search graph gremlin tinkerpop
你可以使用WithOptions来控制这个。
这是使用航线数据集的示例
gremlin> g.V('3').valueMap('city').with(WithOptions.tokens,WithOptions.ids)
==>[id:3,city:[Austin]]
gremlin> g.V('3').valueMap('city').with(WithOptions.tokens,WithOptions.labels)
==>[label:airport,city:[Austin]]
【讨论】:
org.apache.tinkerpop.gremlin.process.traversal.step.util.WithOptions
WithOptions。
使用 WithOptions 的另一个答案可能有效,但是当我尝试它时收到一条错误消息(我正在使用 API 将 gremlin 查询作为字符串发送,因此它可能是 API 的服务器端的错误) .
但是,我想出了另一种方法。
带标签:
g.V().hasLabel('Person').project('label', 'name').by(label).by(values('name').fold())
使用 ID:
g.V().hasLabel('Person').project('id', 'name').by(id).by(values('name').fold())
【讨论】: