关于使用nGQL语法,LOOKUP语句查询结果问题

用LOOKUP 进行边查询,查出来的这个界面,能指定返回Src和Dst的某个属性值,而不返回ID吗?
微信图片_20201014084255

可以用yield子句,参考文档

SrcVID , DstVID, Ranking 三要素是默认返回的,不能去掉,某个edge的属性值可以通过yield子句返回

1 个赞

YIELD字句只能返回EDGE的属性值吗?能不能返回节点的属性值呢?
假设我返回tag为node的属性
我试过后面接| GO FROM $-.SrcID OVER edge YIELD $^.node.name AS source, $$.node.name AS target
但是这样会有重复数据返回。
EDGE的属性值能通过YIELD字句返回,节点的不可以吗?

如果需要返回vertex的属性,需要为tag创建index,并 lookup on tag。目前不支持lookup edge的时候返回vertex的属性。

请问下LOOKUP EDGE 返回的SrcVID的值(比如说100)能通过什么方式让我GO FROM吗?不通过GO FROM $-.SrcID的方式。不然会出现重复数据返回
比如说我返回结果如下
微信图片_20201014111428
如果我通过GO FROM $-.SrcID 会返回64条数据(每8条循环,因为我这里有8条数据,这里对每一条输出都进行GO FROM了)
如果我通过GO FROM 100 就只返回8条。但是这个“100” 有办法能不手动输入吗? 就是从上条语句的输出来获得。

lookup … | yield distinct $-.SrcID as id | go from $-.id

1 个赞

我是LOOKUP ON edge… YIELD DISTINCT $-.SrcVID AS id | GO FROM $-.id
还是出现这个[ERROR (-8)]: Inputs nullptr.
:rofl:

具体的query发一下

LOOKUP ON relation WHERE relation.name == “师生”
返回结果:
微信图片_20201014111428

LOOKUP ON relation WHERE relation.name == “师生” YIELD DISTINCT $-.SrcVID AS id | GO FROM $-.id OVER relation YIELD $^.node.name AS source, $$.node.name AS target, relation.name AS Relation | LIMIT 0, 300
返回结果:
[ERROR (-8)]: Inputs nullptr.

LOOKUP ON relation WHERE relation.name == “师生” | YIELD DISTINCT $-.SrcVID AS id | GO FROM $-.id OVER relation YIELD $^.node.name AS source, $$.node.name AS target, relation.name AS Relation | LIMIT 0, 300

我照输入了。仍然报错呀 :rofl:
[ERROR (-7)]: SyntaxError: syntax error near `DISTINCT’

emm 1.0的yield语句没有支持distinct,我们添加稍后添加一下支持。

也就是说现在没有办法获得一个不重复的结果吗?

GO … YIELD DISTINCT

LOOKUP ON 不支持是吧。2.0会支持吗?

YIELD不支持distinct后面会修改

请问LOOKUP ON EDGE的返回结果的rows能获取并放在LIMIT后吗?

lookup 可以接limit

这个我清楚,我是想说假日LOOKUP ON edge …返回了10条(SrcVID,DstVID,Ranking)数据,能够获取这个“10”并放在LIMIT后吗