【发布时间】:2018-02-06 18:25:17
【问题描述】:
我只是在Cosmos DB 中使用 Graph API
它使用 Gremlin 语法进行查询。
我在图中有许多用户(顶点),每个用户都对其他用户具有“了解”属性。其中一些是外边(outE),另一些是边内(inE),具体取决于关系的创建方式。 我现在正在尝试创建一个查询,它将返回给定用户(顶点)的所有“知道”关系。 我可以通过以下方式轻松获取 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 列表,它们对于给定顶点具有“知道”标签。
或者是否有更简单/更好的方法来建模双向关联,例如“knows”或“friendOf”?
谢谢
【问题讨论】:
标签: graph gremlin tinkerpop azure-cosmosdb