meizh
1
- 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
hy9125
2
你想在插入边的时候,如果点不存在自动创建
这个需要 UPSERT
2 个赞
meizh
4
谢谢回复!
那我用的insert的话这个点是个啥状态呢?因为我看边上是可以查得出来的,另外就是导入工具比如exchange或者importer中我看用的都是insert,也就是说不能只插入边不插入点是吗?……另外,使用upsert插入好像报关键字的错了但是insert没报错:
upsert edge follow(values) values 15->18: (11)
SyntaxError: syntax error near `values'
upsert不是解决这个问题,upsert这是点·或者·边
meizh
7
谢谢回复,我大概明白了。之前没注意看upsert语法,试了一下用upsert是一样的,确实不插入点就没有点的数据。但是那个边是有的可以查的,点的id也是有的只是没有prop查不到,如果放一些属性进去就能查出点和边了
meizh
11
好的,谢谢!第一个问题就是给定一个点id,怎么获取它的tag?我看返回的都是tag.prop1……类似这样的
match (v) where id(v) == ‘id’ return tags(v)
meizh
13
好的,感谢回复!match是2.0之后的语法貌似?顺便问一句,2.0的稳定版本什么时候发布呢?之前好像是说这个月月底
pongw
20
借楼问一下, 我使用的2.0版本
插入边后, 没插入点, 但是通过featch prop on * vid能够查询到这个点
看存储的时候是vid+tagid做key, 那是不是意味着在这种场景下,
实际生成了一个vid+默认tag为key的一条数据?
@Shylock-Hg 麻烦大佬指导下