我具有用于图形数据库的this模式。
我需要从picked
X的连接的所有calls
标签中找到拥有program
个电话的用户。
我对gremlin还是陌生的,我的词汇量有限。
我想找到一种方法来检查对于给定的picked == yes
X,用program
向用户输入的边缘的数量是否等于用户输入的边缘总数。是,如果从程序X到通过调用的用户的每个边都包含picked == yes
我无法在同一查询中计数两次,无法比较这些值来确定用户是否满足条件。我的方法如下:
g.V().hasLabel("User").filter(inE().count().is(neq(0))).filter(inE().outV().in().has("program","name","X")).filter(inE().has("connected","yes").has("picked","no").count().is(eq(0))).values("name")
从本质上讲,我正在除去所有我不会导致预期结果的情况(“用户”中的空节点,已连接但未接听的用户)。当我根据手动检查结果测试它时,不会生成正确的输出。
谢谢!
答案 0 :(得分:0)
仅从描述中,我会说这是您的查询:
g.V().hasLabel('User').
filter(project('a','b').
by(inE().has('picked','yes').count()).
by(out().has('program','X').count()).
where('a',eq('b')))
如果未返回预期结果,请提供一个片段,以创建一个带有预期结果的小样本图。