插入边后,不插入点,这个点就找不到了?

  • nebula 版本:1.x(nightly)
  • 部署方式:Docker
  • 问题的具体描述:插入一条边后,不存在的点也会插入吗?我试了下,点都报不存在,在命令行上或者studio中有什么办法能只找出这个id的点吗?我理解,边存在点肯定是存在的,只是没有tag以及属性,但是不知道怎么查看这个单独的点,操作如下
    插入边:
insert edge follow(values) values 15->18: (11)

查找点会报不存在:

fetch prop on * 15, 18

查找边是可以找到的:

fetch prop on `follow` 15->18

你想在插入边的时候,如果点不存在自动创建
这个需要 UPSERT

2 个赞

点需要单独插入

1 个赞

谢谢回复!
那我用的insert的话这个点是个啥状态呢?因为我看边上是可以查得出来的,另外就是导入工具比如exchange或者importer中我看用的都是insert,也就是说不能只插入边不插入点是吗?……另外,使用upsert插入好像报关键字的错了但是insert没报错:

upsert edge follow(values) values 15->18: (11)
SyntaxError: syntax error near `values'
  1. 没插入点就没有点的数据
    2。看一下upsert的文档

upsert不是解决这个问题,upsert这是点·或者·边

谢谢回复,我大概明白了。之前没注意看upsert语法,试了一下用upsert是一样的,确实不插入点就没有点的数据。但是那个边是有的可以查的,点的id也是有的只是没有prop查不到,如果放一些属性进去就能查出点和边了

是的

您好,我这儿还有几个小问题麻烦帮忙解答下:

1.用点id去查点的tag好像查不出来如果不对结果做切分处理啥的?
2.创建tag个数有上限吗,一个点上创建的tag有没有上限?
3.在命令行或者api中拼sql有没有长度限制呢?

  1. 没太明白
  2. int32_t的正数个,点上没有软限制
  3. 没有软限制

好的,谢谢!第一个问题就是给定一个点id,怎么获取它的tag?我看返回的都是tag.prop1……类似这样的

match (v) where id(v) == ‘id’ return tags(v)

好的,感谢回复!match是2.0之后的语法貌似?顺便问一句,2.0的稳定版本什么时候发布呢?之前好像是说这个月月底 :smiley:

@jude-zhu

嗯对,1.0直接fetch prop on *

2.0 ga 1月底

好的,谢谢回复~会有RC 的版本吗?

据 PM 小姐姐可靠消息,明天发 RC,敬请期待

借楼问一下, 我使用的2.0版本
插入边后, 没插入点, 但是通过featch prop on * vid能够查询到这个点
看存储的时候是vid+tagid做key, 那是不是意味着在这种场景下,
实际生成了一个vid+默认tag为key的一条数据?
@Shylock-Hg 麻烦大佬指导下

插入边不会自动插入点。
点需要单独插入。