Méthodes de Mapping
La méthode Get()
ou Alias()
de la classe Response
retourne un DataItem
, qui intègre le résultat de la requête. Vous devez utiliser la méthode As<Type>()
du DataItem
pour convertir le résultat au type de pilote approprié.
myQuery, _ := conn.Uql("find().nodes() as n return n{*} limit 5", requestConfig)
nodeList, schemaList, _ := myQuery.Alias("n").AsNodes()
printers.PrintNodes(nodeList, schemaList)
Le résultat n
provenant de la base de données contient cinq nodes, chacun de type NODE. La méthode AsNodes()
les convertit en une liste d'objets Node
.
Méthodes de mapping de type disponibles sur DataItem
:
Type UQL | Alias UQL | Méthode | Type du Pilote | Description |
---|---|---|---|---|
NODE | Any | AsNodes() |
[]Node | Mappe un DataItem de type NODE en une liste d'objets Node . |
NODE | Any | AsFirstNode() |
Node | Mappe le premier node dans un DataItem de type NODE en un objet Node . |
EDGE | Any | AsEdges() |
[]Edge | Mappe un DataItem de type EDGE en une liste d'objets Edge . |
EDGE | Any | AsFirstEdge() |
Edge | Mappe la première edge dans un DataItem de type EDGE en un objet Edge . |
PATH | Any | AsPaths() |
Path[] | Mappe un DataItem de type PATH en une liste d'objets Path . |
GRAPH | Any | AsGraph() |
Graph | Mappe un DataItem de type GRAPH en un objet Graph . |
TABLE | _graph |
AsGraphSets() |
[]GraphSet | Mappe un DataItem avec l'alias _graph en une liste d'objets GraphSet . |
TABLE | _nodeSchema , _edgeSchema |
AsSchemas() |
[]Schema | Mappe un DataItem avec l'alias _nodeSchema ou _edgeSchema en une liste d'objets Schema . |
TABLE | _nodeProperty , _edgeProperty |
AsProperties() |
[]Property | Mappe un DataItem avec l'alias _nodeProperty ou _edgeProperty en une liste d'objets Property . |
TABLE | _algoList |
AsAlgos() |
[]Algo | Mappe un DataItem avec l'alias _algoList en une liste d'objets Algo . |
TABLE | _extaList |
AsExtas() |
[]Exta | Mappe un DataItem avec l'alias _extaList en une liste d'objets Exta . |
TABLE | _nodeIndex , _edgeIndex |
AsIndexes() |
[]Index | Mappe un DataItem avec l'alias _nodeIndex ou _edgeIndex en une liste d'objets Index . |
TABLE | _nodeFulltext , _edgeFulltext |
AsFullTexts() |
[]Index | Mappe un DataItem avec l'alias _nodeFulltext ou _edgeFulltext en une liste d'objets Index . |
TABLE | _privilege |
AsPriviliege() |
[]Priviliege | Mappe un DataItem avec l'alias _privilege en un objet Priviliege . |
TABLE | _policy |
AsPolicies() |
[]Policy | Mappe un DataItem avec l'alias _policy en une liste d'objets Policy . |
TABLE | _user |
AsUsers() |
[]User | Mappe un DataItem avec l'alias _user en une liste d'objets User . |
TABLE | _statistic |
AsStats() |
Stat | Mappe un DataItem avec l'alias _statistic en un objet Stat . |
TABLE | _top |
AsTops() |
[]Top | Mappe un DataItem avec l'alias _top en une liste d'objets Process . |
TABLE | _task |
AsTasks() |
[]Task | Mappe un DataItem avec l'alias _task en une liste d'objets Task . |
TABLE | Any | AsTable() |
Table | Mappe un DataItem de type TABLE en un objet Table . |
ATTR | Any | AsAttr() |
Attr | Mappe un DataItem de type ATTR en un objet Attr . |
Types de Pilote
Les objets de tous les types de pilote supportent les méthodes de récupération pour obtenir la valeur d'un champ et les méthodes de définition pour définir la valeur d'un champ, même s'ils ne sont pas listés explicitement ci-dessous.
Node
Un objet Node
a les champs suivants :
Champ | Type | Description |
---|---|---|
Name |
string | Nom d'alias |
ID |
string | ID du Node |
UUID |
uint64 | UUID du Node |
Schema |
string | Schema du Node |
Values |
object | Propriétés personnalisées du Node |
Méthodes sur un objet Node
:
Méthode |
Retour |
Description |
---|---|---|
get("<propertyName>") |
Object | Obtenir la valeur de la propriété personnalisée donnée du node. |
set("<propertyName>", <propertyValue> |
Définir la valeur pour la propriété personnalisée donnée du node ; ou ajouter une paire clé-valeur aux Values du node si <propertyName> n'existe pas. |
myQuery, _ := conn.Uql("find().nodes() as n return n{*} limit 5", requestConfig)
nodeList, _, _ := myQuery.Alias("n").AsNodes()
println("ID du 1er node:", nodeList[0].GetID())
println("Nom du 1er node:", nodeList[0].GetSchema())
ID du 1er node: ULTIPA8000000000000001
Nom du 1er node: account
Edge
Un objet Edge
a les champs suivants :
Champ | Type | Description |
---|---|---|
Name |
string | Nom d'alias |
From |
string | ID du node de départ de l'edge |
To |
string | ID du node de fin de l'edge |
FromUUID |
uint64 | UUID du node de départ de l'edge |
ToUUID |
uint64 | UUID du node de fin de l'edge |
UUID |
uint64 | UUID de l'edge |
Schema |
string | Schema de l'edge |
values |
object | Propriétés personnalisées de l'edge |
Méthodes sur un objet Edge
:
Méthode |
Retour |
Description |
---|---|---|
get("<propertyName>") |
Object | Obtenir la valeur de la propriété personnalisée donnée de l'edge. |
set("<propertyName>", <propertyValue> |
Définir la valeur pour la propriété personnalisée donnée de l'edge ; ou ajouter une paire clé-valeur aux valeurs de l'edge si <propertyName> n'existe pas. |
myQuery, _ := conn.Uql("find().edges() as e return e{*} limit 5", requestConfig)
edgeList, _ := myQuery.Alias("e").AsFirstEdge()
println("Values du 1er edge:", utils.JSONString(edgeList.GetValues()))
Values du 1er edge: {"Data":{"datetime":{"Datetime":1847052190913396736,"Year":2019,"Month":1,"Day":6,"Hour":2,"Minute":57,"Second":57,"Macrosec":0,"Time":"2019-01-06T02:57:57Z"},"targetPost":703,"timestamp":{"Datetime":1847052190913396736,"Year":2019,"Month":1,"Day":6,"Hour":2,"Minute":57,"Second":57,"Macrosec":0,"Time":"2019-01-06T02:57:57+08:00"}}}
Path
Un objet Path
a les champs suivants :
Champ | Type |
Description |
---|---|---|
Name |
string | Nom d'alias |
Nodes |
[]Node | Liste de nodes du path |
Edges |
[]Edge | Liste d'edges du path |
NodeSchemas |
object | Information de schema de node |
EdgeSchemas |
object | Information de schema d'edge |
myQuery, _ := conn.Uql("n().e()[:2].n() as paths return paths{*} limit 5", requestConfig)
pathList, _ := myQuery.Alias("paths").AsPaths()
println("Longueur du 1er path:", pathList[0].GetLength())
println("Liste d'edges du 1er path:", "\n", utils.JSONString(pathList[0].GetEdges()))
println("Information du 2ème node dans le 1er path:", "\n", utils.JSONString(pathList[0].GetNodes()[1]))
Longueur du 1er path: 2
Liste d'edges du 1er path:
[{"Name":"paths","From":"u_10032","To":"u_105","FromUUID":27,"ToUUID":1,"UUID":2784,"Schema":"follow","Values":{"Data":{}}},{"Name":"paths","From":"u_10071","To":"u_10032","FromUUID":33,"ToUUID":27,"UUID":2876,"Schema":"follow","Values":{"Data":{}}}]
Information du 2ème node dans le 1er path:
{"Name":"paths","ID":"u_10032","UUID":27,"Schema":"account","Values":{"Data":{"birthYear":1988,"fRate":null,"gender":"male","industry":"Transportation","name":"floatingnote","new":null,"new1":null,"new2":null,"records":null,"tags":null}}}
Graph
Un objet Graph
a les champs suivants :
Champ | Type |
Description |
---|---|---|
Name |
string | Nom d'alias |
Nodes |
[]Node | Liste de nodes du path |
Edges |
[]Edge | Liste d'edges du path |
NodeSchemas |
object | Carte de tous les schemas de node du path |
EdgeSchemas |
object | Carte de tous les schemas d'edge du path |
myQuery, _ := conn.Uql("n(as n1).re(as e).n(as n2).limit(3) with toGraph(collect(n1), collect(n2), collect(e)) as graph return graph", requestConfig)
resp, _ := myQuery.Alias("graph").AsGraph()
println("ID des nodes:")
for _, item := range resp.Nodes {
println(item.ID)
}
println("UUID des edges:")
for _, item := range resp.Edges {
println(item.UUID)
}
ID des nodes:
ad304833
u604131
ad534784
ad6880
UUID des edges:
363347
774098
527786
3
GraphSet
Un objet GraphSet
a les champs suivants :
Champ |
Type | Description |
---|---|---|
ID |
string | Graphset ID |
Name |
string | Nom du Graphset |
Description |
string | Description du Graphset |
TotalNodes |
string | Nombre total de nodes dans le graphset |
TotalEdges |
string | Nombre total d'edges dans le graphset |
Status |
string | Statut du graphset (MOUNTED, MOUNTING, ou UNMOUNTED) |
myQuery, _ := conn.Uql("show().graph()", nil)
resp, _ := myQuery.Alias("_graph").AsGraphSets()
for _, item := range resp {
if item.Status == "UNMOUNTED" {
println(item.Name)
}
}
DFS_EG
cyber
cyber2
Schema
Un objet Schema
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom du Schema |
Properties |
[]Property | Liste de propriétés du schema |
Desc |
string | Description du Schema |
Type |
string | Type du schema (node ou edge) |
DBType |
DBType | Type du schema (node ou edge) |
Total |
int | Nombre total de nodes/edges du schema |
myQuery, _ := conn.Uql("show().node_schema()", requestConfig)
resp, _ := myQuery.Alias("_nodeSchema").AsSchemas()
for _, item := range resp {
println(item.Name, "a", item.Total, "nodes")
}
default a 0 nodes
user a 1092511 nodes
ad a 846811 nodes
Property
Un objet Property
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de la propriété |
Desc |
string | Description de la propriété |
Lte |
bool | Statut LTE de la propriété |
Schema |
string | Schema associé de la propriété |
Type |
PropertyType | Type de données de la propriété |
SubTypes |
[]PropertyType | Liste de type de données de la propriété |
Extra |
string | Information supplémentaire des propriétés |
myQuery, _ := conn.Uql("show().node_property(@user)", requestConfig)
resp, _ := myQuery.Alias("_nodeProperty").AsProperties()
for _, item := range resp {
if item.Lte {
println("Nom de la propriété LTE-ed:", item.Name)
}
}
Nom de la propriété LTE-ed: occupation
Algo
Un objet Algo
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de l'algorithme |
Desc |
string | Description de l'algorithme |
Version |
string | Version de l'algorithme |
Params |
object | Paramètres de l'algorithme |
myQuery, _ := conn.Uql("show().algo()", requestConfig)
resp, _ := myQuery.Alias("_algoList").AsAlgos()
println(utils.JSONString(resp[0]))
{"Name":"bipartite","Desc":"bipartite check","Version":"1.0.1","Params":{}}
Exta
Un exta est un algorithme personnalisé développé par les utilisateurs.
Un objet Exta
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de l'Exta |
Author |
string | Auteur de l'Exta |
Version |
string | Version de l'Exta |
Detail |
string | Contenu du fichier de configuration YML de l'Exta |
myQuery, _ := conn.Uql("show().exta()")
resp, _ := myQuery.Alias("_extaList").AsExtas()
println("Nom de l'Exta:", utils.JSONString(resp[0].Name))
Nom de l'Exta: "page_rank"
Index
Un objet Index
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de l'Index |
Properties |
string | Nom de propriété de l'index |
Schema |
string | Nom du schema de l'index |
Status |
string | Statut de l'index (terminé ou en cours de création) |
Size |
string | Taille de l'index en octets |
Type |
string | Type de l'index (DBNODE ou DBEDGE) |
myQuery, _ := conn.Uql("show().index()", requestConfig)
resp, _ := myQuery.Alias("_nodeIndex").AsIndexes()
for i := 0; i < len(resp); i++ {
println("Nom du schema:", resp[i].Schema)
println("Propriétés:", resp[i].Properties)
println("Taille:", resp[i].Size)
}
Nom du schema: user
Propriétés: shopping_level
Taille: 4608287
Nom du schema: ad
Propriétés: price
Taille: 7828760
Full-text
Un objet FullText
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de l'index |
Properties |
string | Nom de propriété de l'index |
Schema |
string | Nom du schema de l'index |
Status |
string | Statut de l'index (terminé ou en cours de création) |
Size |
string | Taille de l'index en octets |
Type |
string | Type de l'index (DBNODE ou DBEDGE) |
myQuery, _ := conn.Uql("show().fulltext()", requestConfig)
resp, _ := myQuery.Alias("_edgeFulltext").AsFullTexts()
for i := 0; i < len(resp); i++ {
println("Nom du Fulltext:", resp[i].Name)
println("Nom du schema:", resp[i].Schema)
println("Propriétés:", resp[i].Properties)
}
Nom du Fulltext: nameFull
Nom du schema: review
Propriétés: content
Privilege
Un objet Privilege
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
GraphPrivileges |
[]string | Privileges de graph |
SystemPrivileges |
[]string | Privileges système |
myQuery, _ := conn.Uql("show().privilege()", requestConfig)
resp, _ := myQuery.Alias("_privilege").AsPrivilege()
println(utils.JSONString(resp[0].SystemPrivileges))
["TRUNCATE","COMPACT","CREATE_GRAPH","SHOW_GRAPH","DROP_GRAPH","ALTER_GRAPH","MOUNT_GRAPH","UNMOUNT_GRAPH","TOP","KILL","STAT","SHOW_POLICY","CREATE_POLICY","DROP_POLICY","ALTER_POLICY","SHOW_USER","CREATE_USER","DROP_USER","ALTER_USER","GRANT","REVOKE","SHOW_PRIVILEGE"]
Policy
Un objet Policy
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de la stratégie |
GraphPrivileges |
GraphPrivileges | Privilèges de graph et les graphsets correspondants inclus dans la stratégie |
SystemPrivileges |
[]string | Privilèges système inclus dans la stratégie |
PropertyPrivileges |
PropertyPrivileges | Privilèges de propriétés inclus dans la stratégie |
Policies |
[]string | Stratégies incluses dans la stratégie |
myQuery, _ := conn.Uql("show().policy()", requestConfig)
resp, _ := myQuery.Alias("_policy").AsPolicies()
for i := 0; i < len(resp); i++ {
println(resp[i].Name)
}
operator
manager
User
Un objet User
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Username |
string | Nom d'utilisateur |
Password |
string | Mot de passe |
Create |
string | Quand l'utilisateur a été créé |
GraphPrivileges |
GraphPrivileges | Privilèges de graph et les graphsets correspondants accordés à l'utilisateur |
SystemPrivileges |
[]string | Privilèges système accordés à l'utilisateur |
Policies |
[]string | Stratégies accordées à l'utilisateur |
PropertyPrivileges |
PropertyPrivileges | Privilèges de propriété accordés à l'utilisateur |
myQuery, _ := conn.Uql("show().user('Tester')", requestConfig)
resp, _ := myQuery.Alias("_user").AsUsers()
println("Nom d'utilisateur:", resp[0].UserName)
println("Créé le:", resp[0].Create)
println("Privilèges de graph:", utils.JSONString(resp[0].GraphPrivileges))
println("Privilèges système:", utils.JSONString(resp[0].SystemPrivileges))
println("Privilèges de propriétés:", utils.JSONString(resp[0].PropertyPrivileges))
Nom d'utilisateur: Tester
Créé le: 1970-01-01 08:00:00
Privilèges de graph: {"Ad_Click":["FIND_EDGE","FIND_NODE"],"DFS_EG":["UPDATE","INSERT"]}
Privilèges système: ["MOUNT_GRAPH"]
Privilèges de propriétés: {"edge":{"deny":[],"read":[],"write":[]},"node":{"deny":[],"read":[],"write":[["miniCircle","account","name"]]}}
Stats
Un objet Stat
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
CPUUsage |
string | Utilisation CPU en pourcentage |
MemUsage |
string | Utilisation mémoire en mégaoctets |
ExpiredDate |
string | Date d'expiration de la licence |
CPUCores |
string | Nombre de cœurs CPU |
Company |
string | Nom de la société |
ServerType |
string | Type de serveur |
Version |
string | Version du serveur |
myQuery, _ := conn.Uql("stats()", requestConfig)
resp, _ := myQuery.Alias("_statistic").AsStats()
println("Utilisation CPU::", resp.CPUUsage, "%")
println("Utilisation mémoire:", resp.MemUsage, "%")
Utilisation CPU:: 16.926739 %
Utilisation mémoire: 11558.082031 %
Process
Un objet Process
(Top
) a les champs suivants :
Champ |
Type |
Description |
---|---|---|
ProcessId |
string | ID du processus |
Status |
string | Statut du processus |
ProcessUql |
string | Le UQL exécuté avec le processus |
Duration |
string | La durée en secondes pendant laquelle la tâche a été exécutée jusqu'à présent |
myQuery, _ := conn.Uql("top()", requestConfig)
resp, _ := myQuery.Alias("_top").AsTops()
println(resp[0].ProcessId)
a_5_15518_2
Task
Un objet Task
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Param |
object | Paramètres de l'algorithme et leurs valeurs correspondantes |
TaskInfo |
TaskInfo | Informations de la tâche incluant TaskID , AlgoName , StartTime , TaskStatus , etc. |
ErrorMsg |
string | Message d'erreur de la tâche |
Result |
object | Résultat de l'algorithme et statistiques et leurs valeurs correspondantes |
myQuery, _ := conn.Uql("show().task()", requestConfig)
resp, _ := myQuery.Alias("_task").AsTasks()
println("Nom de l'algorithme:", resp[0].TaskInfo.AlgoName)
println("Paramètres:", utils.JSONString(resp[0].Param))
println("Résultat:", utils.JSONString(resp[0].Result))
Nom de l'algorithme: louvain
Paramètres: {"min_modularity_increase":"0.001","phase1_loop_num":"20"}
Résultat: {"community_count":"1228589","modularity":"0.635263","result_files":"communityID"}
Table
Un objet Table
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom de la table |
Headers |
[]Property | En-têtes de la table |
Rows |
[]Row | Lignes de la table |
Méthodes sur un objet Table
:
Méthode |
Retour |
Description |
---|---|---|
ToKV() |
[]Values | Convertir toutes les lignes de la table en une liste clé-valeur. |
myQuery, _ := conn.Uql("find().nodes() as n return table(n._id, n._uuid) as myTable limit 5", requestConfig)
resp, _ := myQuery.Alias("myTable").AsTable()
println("2ème ligne dans la table :", utils.JSONString(resp.ToKV()[1]))
2ème ligne dans la table : {"Data":{"n._id":"u604510","n._uuid":2}}
Attr
Un objet Attr
a les champs suivants :
Champ |
Type |
Description |
---|---|---|
Name |
string | Nom d'alias |
PropertyType |
PropertyType | Type d 'Attr |
ResultType |
ResultType | Description de type d'Attr |
Rows |
Row | Lignes de l'Attr |
myQuery, _ := conn.Uql("find().nodes({@ad}) as n return n.brand limit 5", requestConfig)
resp, _ := myQuery.Alias("n.brand").AsAttr()
println(utils.JSONString(resp.Rows))
[14655,14655,14655,14655,434760]