Gremlin 查询以获取给定顶点的进出边
Gremlin query to get in and out edges for a given Vertex
我只是在玩 Cosmos DB
中的图表 API
它使用 Gremlin 语法进行查询。
我在图中有许多用户(顶点),每个用户都对其他用户有“知道”的属性。其中一些是外边 (outE),另一些是内边 (inE),具体取决于关系的创建方式。
我现在正在尝试创建一个查询,它将 return 给定用户 (Vertex) 的所有“已知”关系。
我可以通过以下方式轻松获取 inE 或 outE 的 ID:
g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').inE('knows')
g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').outE('knows')
其中 '7112138f-fae6-4272-92d8-4f42e331b5e1'
是我正在查询的用户的 Id,但我事先不知道这是一个内边缘还是外边缘,所以想要同时获得这两个(例如,如果用户具有带有“知道”标签的进出边缘)。
我试过使用投影和 OR 运算符以及各种组合,例如:
g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').where(outE('knows').or().inE('knows'))
但它没有让我取回我想要的数据。
我想要的是所有 inE 和 outE 的 Id 列表,这些 ID 具有给定顶点的“知道”标签。
或者是否有 simpler/better 方法来模拟双向关联,例如“知道”或“friendOf”?
谢谢
在这种情况下,您可以使用 bothE
步骤。 g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').bothE('knows')
我只是在玩 Cosmos DB
中的图表 API
它使用 Gremlin 语法进行查询。
我在图中有许多用户(顶点),每个用户都对其他用户有“知道”的属性。其中一些是外边 (outE),另一些是内边 (inE),具体取决于关系的创建方式。 我现在正在尝试创建一个查询,它将 return 给定用户 (Vertex) 的所有“已知”关系。 我可以通过以下方式轻松获取 inE 或 outE 的 ID:
g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').inE('knows')
g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').outE('knows')
其中 '7112138f-fae6-4272-92d8-4f42e331b5e1'
是我正在查询的用户的 Id,但我事先不知道这是一个内边缘还是外边缘,所以想要同时获得这两个(例如,如果用户具有带有“知道”标签的进出边缘)。
我试过使用投影和 OR 运算符以及各种组合,例如:
g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').where(outE('knows').or().inE('knows'))
但它没有让我取回我想要的数据。
我想要的是所有 inE 和 outE 的 Id 列表,这些 ID 具有给定顶点的“知道”标签。
或者是否有 simpler/better 方法来模拟双向关联,例如“知道”或“friendOf”?
谢谢
在这种情况下,您可以使用 bothE
步骤。 g.V('7112138f-fae6-4272-92d8-4f42e331b5e1').bothE('knows')