批量修改关系属性

nebula版本:v1.2.0
我们业务需要增加一个对关系是否合理进行审核的功能,然后我在schema里面设置了contain.check_status的默认值为0,然后我就想要查询与A有contain关系且check_status为0的节点该如何查询呢?我按下面的方式查询得到的是数据为空(我还尝试了contain.status>=-9999999也不行):

LOOKUP ON Post WHERE Post.PostName=='A'|
YIELD $-.VertexID AS rootPost|
GO 1 TO 1 STEPS FROM $-.rootPost OVER contain 
  WHERE (contain.check_status==0)==true YIELD contain.check_status

得到结果如下:


但是当我直接返回contain.check_status(不加where)的时候显示的就是0,代码如下:

LOOKUP ON Post WHERE Post.PostName=='A'|
YIELD $-.VertexID AS rootPost|
GO 1 TO 1 STEPS FROM $-.rootPost OVER contain 
  YIELD contain.check_status

结果如下:


然后我又检查了一下这些值是否真的是0:

LOOKUP ON Post WHERE Post.PostName=='A'|
YIELD $-.VertexID AS rootPost|
GO 1 TO 1 STEPS FROM $-.rootPost OVER contain 
  YIELD contain.check_status==0

结果如下(它们真的是0):


那么where和yield的运算结果为什么不同呢?如果我想要批量地给所有的边添加某个带有默认值的属性该怎么添加呢?删除所有数据重新添加吗?

这个query里where的条件为什么不直接写成WHERE (contain.check_status==0)

试了,也不行

前面两个query的PostName=='A', 为啥最后检测的是Post.PostName=='后台开发'?

呃。。。复制粘贴出的问题,都是A

有点奇怪,这个问题还一直存在吗?
先回答你第二个问题,目前还不支持批量地增删属性。

你可以试试在console里执行语句看看结果是不是一样

LOOKUP ON Post WHERE Post.PostName=='A'|
YIELD $-.VertexID AS rootPost|
GO FROM $-.rootPost OVER contain 
WHERE (contain.check_status==0) YIELD contain.check_status

嗯嗯,还是一样的,我现在是把数据全部删了,然后重新导入,就有默认值了,但是带着默认值新增数据还是不行

能贴一下你创建tag的语句吗?另外用desc edge rootPost 看一下到底有没有default value

浙ICP备20010487号