我有顶点的人,用户类型和位置。人们具有出众的边缘people_location和people_usertype。人员具有属性“名称”,用户类型具有属性“ activationStatus”,位置具有属性“名称”。
我想创建一个看起来像这样的列表:
[[1]:https://i.stack.imgur.com/lKzZL.png]
我希望按位置统计激活状态为“活动”和“不活动”的人员数,其中位置中包含“美国”。
这仅是我想用来按位置(名称)以美国开头的地理位置来计算人数的信息:
g.V()hasLabel('people').out('people_publicisofficelocation')
.filter(has('name',between('US','UT')))
.groupCount().by('name')
它正在运行,但没有产生结果。
答案 0 :(得分:0)
您可以使用has('name',between('US','UT'))
之类的东西在3.4之前的TinkerPop版本中模拟“开始于”行为,因此您可以用上面的过滤器行代替。如果您使用的图形实现支持TinkerPop 3.4,则可以使用其他文本谓词作为开头,结尾和包含。
正如其他人所说,如果您可以发布一些示例addV()
和addE()
步骤来构建图形的一部分,则给出更精确的答案将变得更加容易。
答案 1 :(得分:0)
这对我有用!
g.V().hasLabel('Location').filter(has('name',between('US','UT')))
.project('Name','Active', 'Inactive', 'Total') .by('name') .by(__.both('people_location').out('people_usertype')
.where(values('activationStatus').is(eq('Active'))).count()) .by(__.both('people_location').out('people_usertype')
.where(values('activationStatus').is(eq('Inactive'))).count())
.by(__.both('people_location').out('people_usertype').count())