代码之家  ›  专栏  ›  技术社区  ›  user1189332

利用空节点的DGraph最简变异

  •  0
  • user1189332  · 技术社区  · 5 年前

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

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

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

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

    我的希望/期望是创造一个人(节点)的詹姆斯和一个节点的皇冠假日的边缘代表“停留”。

    我错过了什么?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Michel Conrado Diz    5 年前

    这个变异写错了,尽管你(或者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
  •  0
  •   Daniel Mai    5 年前

    你说的对,突变将创建一个具有两条边的节点: personId 一直呆在那里。

    如果您使用的是Ratel用户界面,那么在本地Bundle版本中会有一个讨厌的bug,其中的突变会被发送两次到Dgraph。在最新的和Dev发行版中修复了此错误。

    推荐文章