【问题标题】:DGraph simplest mutation using blank nodes使用空白节点的 DGraph 最简单突变
【发布时间】:2019-10-10 13:42:09
【问题描述】:

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

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

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

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

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

我在这里错过了什么?

【问题讨论】:

    标签: dgraph


    【解决方案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/

    【讨论】:

      【解决方案2】:

      你说得对,突变会创建一个具有两条边的单个节点:personId 和 stay_at`。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        • 2021-05-04
        • 2016-03-05
        • 1970-01-01
        • 2016-09-01
        • 1970-01-01
        • 2016-06-09
        相关资源
        最近更新 更多