驱动程序的输出取决于具体请求。有些方法,如Uql()
,会返回Response
对象,您需从中提取数据,将其转换成相应的驱动类型以用于Go应用程序。其他方法,如ShowGraph()
, ShowSchema()
,和ShowProperty()
则直接返回驱动类型数据(GraphSet
, Schema
, Property
等)。请参阅嬴图数据与Go类型映射了解主要驱动类型。
Response
uql()
和其他方法会返回Response
对象。Response
对象包含以下字段:
字段 |
类型 |
描述 |
---|---|---|
DataItemMap |
map[string]{} | 索引及其对应数据(DataItem )的映射。 |
Reply |
UqlReply | 请求执行的回复,包括 state 、sizeCache 等。 |
Status |
Status | 请求的执行状态。 |
Statistics |
Statistics | 请求执行的统计信息,包括 NodeAffected 、EdgeAffected 、TotalCost 、EngineCost 等。 |
ExplainPlan |
ExplainPlan | EUQL 语句的解释树。 |
AliasList |
[]string | 别名列表。 |
若查询返回了数据,您可使用Get()
或Alias()
方法通过别名提取每个项。两种方法都会返回一个DataItem
对象,内嵌在查询结果中。若要将 DataItem
映射为对应的驱动类型,请参阅嬴图数据与Go类型映射。
Get()
通过别名索引获取数据。
参数:
int
:别名索引。
返回值:
DataItem
:获取到的数据。
myQuery, err := conn.Uql("find().nodes() as n return n._id, n._uuid limit 3", requestConfig)
if err != nil {
println(err)
}
println(utils.JSONString(myQuery.Get(0)))
UQL语句返回n._id
和n._uuid
两个别名;Get()
方法获取别名索引为0的n._id
数据。
{"Alias":"","Type":4,"Data":{"alias":"n._id","attr":{"value_type":7,"values":["VUxUSVBBODAwMDAwMDAwMDAwMDAwMQ==","VUxUSVBBODAwMDAwMDAwMDAwMDAwMg==","VUxUSVBBODAwMDAwMDAwMDAwMDAwMw=="]}}}
Alias()
通过别名名称获取数据。
参数:
string
:别名名称。
返回值:
DataItem
:获取到的数据。
myQuery, err := conn.Uql("find().nodes() as n return n._id, n._uuid limit 3", requestConfig)
if err != nil {
println(err)
}
println(utils.JSONString(myQuery.Alias("n._uuid")))
UQL语句返回n._id
和n._uuid
两个别名;Alias()
方法根据n._uuid
的别名名称获取数据。
{"Alias":"","Type":4,"Data":{"alias":"n._uuid","attr":{"value_type":4,"values":["AAAAAAAAAAE=","AAAAAAAAAAI=","AAAAAAAAAAM="]}}}