Gremlin查询Edge inVLabel,outVLabel

时间:2018-09-06 00:37:40

标签: azure-cosmosdb gremlin

我有以下示例Edge标记为“ posts”。 “帖子”可以具有多种类型的父顶点(outVLabel),例如“通道”,“发布者”,“用户”等。如何查询所有outVLabel为“通道”的边而不查询标签out()顶点?我要返回一个数组“边”。

Query:
g.E().hasLabel('posts').has(???, 'channel')

Edge object:
[{
"id": "83c972b0-315d-49fe-a735-882c4dcbdaa2",
"label": "posts",
"type": "edge",
"inVLabel": "article",
"outVLabel": "channel",
"inV": "7410b6c8-ed70-4a00-800c-489d596907da",
"outV": "c8c5f45d-0195-49c5-b7ae-9eda1d441bc9",
"properties": {
  "service": "rss"
 }]

1 个答案:

答案 0 :(得分:1)

您必须这样做:

g.E().hasLabel('posts').where(outV().hasLabel('channel'))

或者,如有必要,对输出顶点标签进行规范化并将其放置在边缘上作为属性,在这种情况下,您可以执行以下操作:

g.E().has('posts', 'outVLabel', 'channel')