2.0
Nebula go 执行结果ResultSet 如何获取点和边
我看到有Node 和Relationship 的定义,怎么在结果中获取
Node 和Relationship 应该是在前端图展示中用吧
这里只有row 和record,我是想获取node和Relationship
例子里面有record拿ValueWrapper,然后ValueWrapper就可以拿Node和Relationship, 你可以看ValueWrapper的方法,有 asNode() 和 asRelationship()
https://github.com/vesoft-inc/nebula-go/blob/master/value_wrapper.go
NBA数据集
GO FROM “Amar’e Stoudemire” OVER like
LOOKUP ON player
查询出来的数据ResultSet中的ValueWrapper都是value,没有Node和Relationship
怎么写查询语句,查出的数据是Node和Relationship
你去看match的语法或者子图的
https://github.com/vesoft-inc/nebula-docs/blob/master/docs-2.0/3.ngql-guide/7.general-query-statements/2.match.md
https://github.com/vesoft-inc/nebula-docs/blob/master/docs-2.0/3.ngql-guide/16.subgraph-and-path/1.get-subgraph.md
asNode() 和 asRelationship()获取的Node 和 Relationship 目前不能被外部包访问,需要修改
好的,感谢你的反馈,我们尽快修复。
你好,我在本地测试了没有发现你说的情况,能说一下你是怎么调用的吗?返回的Node和Relationship都是puclic的,按理说都可以访问到的
上面没有说清楚,不是node不能访问,是node中vertex不能访问,
1、需要提供的获取vertex的方法
2、Values方法中获取的属性也不知是哪个tag
3、string()方法是否也可以改为public
4、ValueWrapper 也需要一个NewValueWrapper的方法
感觉node的设计思想只是用于数据展示,但是在前端展示后也有修改数据的需求,所以node中需要获取vertex的信息
是的,感谢你的反馈。
- 为什么要获取vertex,是为了修改是吗?我觉得我们不应该提供让用户直接修改原始数据的接口,但是你可以通过拿到数据构造一个新的数据结构,这个我们应该是要提供。
- 你说到Values不知道是哪个tag,这不应该的,本身通过这个接口拿数据的时候就是要指定tag的。
- string() 是要放开的
- ValueWrapper和1提供一样的就可以。
value_wrapper.go 中的String()方法中,下面的代码多了双引号,本来已经是string类型,加了双引号导致返回的值多了引号
} else if value.IsSetSVal() {
return "
+ string(value.GetSVal()) + "
就是要加"" 才表示它是个string,tostring() 主要是用于展示的。