0

刚开始使用 DGraph 并试图理解一个最简单的突变。这就是我所拥有的:

{
 set {
_:james <personId> "jr123" .
_:james <stayed_at> "crowne_plaza" .
}
}

它创建了 2 个节点,并使用以下方法进行了验证:

{
  persons(func:eq(personId, "jr123")) {
  stayed_at
  }
}

我的希望/期望是创建一个詹姆斯的人(节点)和一个crowne_plaza的单个节点,边缘代表“stayed_at”。

我在这里想念什么?

4

2 回答 2

1

尽管您(或 Ratel UID 错误)有可能发生两次变异,但这种变异写错了。此突变对两个实体使用相同的空白节点。

    {
     set {
       _:james <personId> "jr123" .
       _:james <stayed_at> _:plaza .
       _:plaza <name> "crowne_plaza" .
      }
    }

查询

{
  persons(func: eq(personId, "jr123")) {
    uid
    personId
    stayed_at {
          name
      }
    }
}

有关更多信息,请查看此部分的游览https://tour.dgraph.io/master/intro/5/

于 2019-10-10T05:42:09.760 回答
0

您是正确的,突变会创建一个具有两条边的单个节点:personId和 stay_at`。

如果您使用的是 Ratel UI,则在 Local Bundle 版本中存在一个令人讨厌的错误,其中突变被发送两次到 Dgraph。此错误已在最新版和开发版中修复。

于 2019-07-29T16:08:12.600 回答