Dgraph图相交

时间:2018-05-06 18:06:02

标签: nosql bigdata graphql dgraph

我有一个GraphQL + - 查询,其中我希望得到两个人的共同朋友。但我真的找不到任何选择使用两种图形的某种交叉......有人可以帮助我吗?这是我的代码:

{
  catarinas_friends(func: eq(name, "Catarina"))
  {
    friend 
    {
      name
    }
  }

  michaels_friends(func: eq(name, "Michael")) {
    friend
    {
      name
    }
  }
# I want to intersect those two
}

1 个答案:

答案 0 :(得分:0)

这对您有用吗?

{
  var(func: eq(name@., "Michael")) {
    MF as friend
  }

  var(func: eq(name@., "Amit")) {
    CF as  friend
  }

  in_common(func: uid(MF)) @filter(uid(CF)){
    name@.
  }

}

使用此数据集https://tour.dgraph.io/master/intro/4/ 你可以有共同的朋友。

您还可以使用K-Shortest Path Queries

响应中的中间一个是最接近的公共实体。