Cette section présente des méthodes sur un objet Connection
pour gérer les schemas et propriétés des nodes et edges dans un graphset.
Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'exemple complet.
Schema
showSchema()
Récupère tous les schemas de nodes et d'edges du graphset actuel.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
ResponseListSchema
: La liste de tous les schemas dans le graphset actuel.
# Récupère tous les schemas dans le graphset 'UltipaTeam' et imprime leurs noms et types
requestConfig = RequestConfig(graphName="UltipaTeam")
schemas = Conn.showSchema(requestConfig)
for schema in schemas:
print(f"{schema.name}, type: {schema.DBType}")
default, type: 0
member, type: 0
organization, type: 0
default, type: 1
reportsTo, type: 1
relatesTo, type: 1
getSchema()
Récupère un node ou un edge schema du graphset actuel.
Paramètres :
str
: Nom du schema.DBtype
: Type du schema (node ou edge).RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Schema
: Le schema récupéré.
# Récupère le schema de node 'organization' et le schema d'edge 'connectsTo' dans le graphset 'UltipaTeam', et imprime toutes leurs informations
requestConfig = RequestConfig(graphName="UltipaTeam")
schema1 = Conn.getSchema("organization", DBType.DBNODE, requestConfig)
if schema1:
print(schema1.toJSON())
else:
print("Not found")
schema2 = Conn.getSchema("connectsTo", DBType.DBEDGE, requestConfig)
if schema2:
print(schema2.toJSON())
else:
print("Not found")
{"DBType": 0, "description": "", "name": "organization", "properties": [{"description": "", "lte": true, "name": "name", "schema": null, "subTypes": null, "type": "string"}, {"description": "", "lte": false, "name": "logo", "schema": null, "subTypes": null, "type": "string"}], "total": "19", "type": "node"}
Not found
showNodeSchema()
Récupère tous les schemas de nodes du graphset actuel.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List[Schema]
: La liste de tous les schemas de nodes dans le graphset actuel.
# Récupère tous les schemas de nodes dans le graphset 'UltipaTeam' et imprime leurs noms
requestConfig = RequestConfig(graphName="UltipaTeam")
schemas = Conn.showNodeSchema(requestConfig)
for schema in schemas:
print(schema.name)
default
member
organization
showEdgeSchema()
Récupère tous les schemas d'edges du graphset actuel.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List[Schema]
: La liste de tous les schemas d'edges dans le graphset actuel.
# Récupère tous les schemas d'edges dans le graphset 'UltipaTeam' et imprime leurs noms
requestConfig = RequestConfig(graphName="UltipaTeam")
schemas = Conn.showEdgeSchema(requestConfig)
for schema in schemas:
print(schema.name)
default
reportsTo
relatesTo
getNodeSchema()
Récupère un schema de node du graphset actuel.
Paramètres :
str
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Schema
: Le schema de node récupéré.
# Récupère le schema de node 'member' dans le graphset 'UltipaTeam' et imprime les noms de ses propriétés
requestConfig = RequestConfig(graphName="UltipaTeam")
schema = Conn.getNodeSchema("member", requestConfig)
for property in schema.properties:
print(property.name)
title
profile
age
getEdgeSchema()
Récupère un schema d'edge du graphset actuel.
Paramètres :
String
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Schema
: Le schema d'edge récupéré.
# Récupère le schema d'edge 'relatesTo' dans le graphset 'UltipaTeam' et imprime les noms de ses propriétés
requestConfig = RequestConfig(graphName="UltipaTeam")
schema = Conn.getEdgeSchema("relatesTo", requestConfig)
for property in schema.properties:
print(property.name)
type
createSchema()
Crée un nouveau schema dans le graphset actuel.
Paramètres :
Schema
: Le schema à créer ; les champsname
etdbType
doivent être définis,description
etproperties
sont optionnels.bool
(Optionnel) : Indique si des propriétés doivent être créées, la valeur par défaut estFalse
.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
UltipaResponse
: Résultat de la requête.
requestConfig = RequestConfig(graphName="UltipaTeam")
# Crée le schema de node 'utility' (avec propriétés) dans le graphset 'UltipaTeam' et imprime toutes ses informations
utility = Schema(
name="utility",
description="Office utilities",
dbType=DBType.DBNODE,
properties=[
Property(name="name", type=PropertyTypeStr.PROPERTY_STRING),
Property(name="purchaseDate", type=PropertyTypeStr.PROPERTY_DATETIME)
]
)
response1 = Conn.createSchema(utility, True, requestConfig)
print(response1.status.code)
time.sleep(3)
schema1 = Conn.getNodeSchema("utility", requestConfig)
print(schema1.toJSON())
# Crée le schema d'edge 'managedBy' (sans propriétés) dans le graphset 'UltipaTeam' et imprime toutes ses informations
managedBy = Schema(
name="managedBy",
dbType=DBType.DBEDGE
)
response2 = Conn.createSchema(managedBy, False, requestConfig)
print(response2.status.code)
time.sleep(3)
schema2 = Conn.getEdgeSchema("managedBy", requestConfig)
print(schema2.toJSON())
0
{"DBType": 0, "description": "Office utilities", "name": "utility", "properties": [{"description": "", "lte": false, "name": "name", "schema": null, "subTypes": null, "type": "string"}, {"description": "", "lte": false, "name": "purchaseDate", "schema": null, "subTypes": null, "type": "datetime"}], "total": "0", "type": "node"}
0
{"DBType": 1, "description": "", "name": "managedBy", "properties": [], "total": "0", "type": "edge"}
createSchemaIfNotExist()
Crée un nouveau schema dans le graphset actuel, en ignorant les erreurs si le nom du schema existe déjà.
Paramètres :
Schema
: Le schema à créer ; les champsname
etdbType
doivent être définis,description
etproperties
sont optionnels.bool
(Optionnel) : Indique si des propriétés doivent être créées, la valeur par défaut estFalse
.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
bool
: Indique si le schema existe déjà.UltipaResponse
: Résultat de la requête.
requestConfig = RequestConfig(graphName="UltipaTeam")
utility = Schema(
name="utility",
description="Office utilities",
dbType=DBType.DBNODE
)
# Crée un schema dans le graphset 'UltipaTeam' et imprime si la création a lieu
response1 = Conn.createSchemaIfNotExist(schema=utility, requestConfig=requestConfig)
if response1[0] is False:
print("Code =", response1[1].status.code)
else:
print("No response")
# Crée le même schema à nouveau et imprime si la création a lieu
time.sleep(3)
response2 = Conn.createSchemaIfNotExist(utility, requestConfig)
if response2[0] is False:
print("Code =", response1[1].status.code)
else:
print("No response")
Code = 0
No response
alterSchema()
Modifie le nom et la description d'un schema existant dans le graphset actuel par son nom.
Paramètres :
Schema
: Le schema existant à modifier ; les champsname
etdbType
doivent être définis.Schema
: La nouvelle configuration pour le schema existant ; le champdbType
doit être défini, et l'un des champsname
oudescription
, ou les deux, doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
UltipaResponse
: Résultat de la requête.
# Renomme le schema de node 'utility' en 'securityUtility' et enlève sa description dans le graphset 'UltipaTeam'
requestConfig = RequestConfig(graphName="UltipaTeam")
schema = Conn.getNodeSchema("utility", requestConfig)
newSchema = Schema(name="securityUtility", description="yyyy", dbType=DBType.DBNODE)
response = Conn.alterSchema(schema, newSchema, requestConfig)
print(response.status.code)
0
dropSchema()
Supprime un schema du graphset actuel par son nom.
Paramètres :
Schema
: Le schema existant à supprimer ; les champsname
etdbType
doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
UltipaResponse
: Résultat de la requête.
# Supprime le schema de node 'utility' dans le graphset 'UltipaTeam'
requestConfig = RequestConfig(graphName="UltipaTeam")
schema = Conn.getNodeSchema("utility", requestConfig)
response = Conn.dropSchema(schema, requestConfig)
print(response.status.code)
0
Property
showProperty()
Récupère les propriétés personnalisées de nodes ou d'edges du graphset actuel.
Paramètres :
dbType
: Type de la propriété (node ou edge).str
(Optionnel) : Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List[Property]
: La liste de toutes les propriétés récupérées dans le graphset actuel.
# Récupère toutes les propriétés personnalisées de nodes dans le graphset 'UltipaTeam' et imprime leurs noms, types et schemas associés
requestConfig = RequestConfig(graphName="UltipaTeam")
properties = Conn.showProperty(dbType=DBType.DBNODE,requestConfig=requestConfig)
for property in properties:
print(f"{property.name} ({property.type}) is associated with schema named {property.schema}")
name (string) is associated with schema named member
title (string) is associated with schema named member
profile (string) is associated with schema named member
name (string) is associated with schema named organization
logo (string) is associated with schema named organization
showNodeProperty()
Récupère les propriétés personnalisées de nodes du graphset actuel.
Paramètres :
str
(Optionnel) : Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List[Property]
: La liste de toutes les propriétés récupérées dans le graphset actuel.
# Récupère toutes les propriétés personnalisées du schema de node 'member' dans le graphset 'UltipaTeam' et imprime le nombre
requestConfig = RequestConfig(graphName="UltipaTeam")
properties = Conn.showNodeProperty("member", requestConfig)
print(len(properties))
3
showEdgeProperty()
Récupère les propriétés personnalisées d'edges du graphset actuel.
Paramètres :
str
(Optionnel) : Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List[Property]
: La liste de toutes les propriétés récupérées dans le graphset actuel.
# Récupère toutes les propriétés personnalisées du schema d'edge 'relatesTo' dans le graphset 'UltipaTeam' et imprime leurs noms
requestConfig = RequestConfig(graphName="UltipaTeam")
properties = Conn.showEdgeProperty("relatesTo", requestConfig)
for property in properties:
print(property.name)
type
getProperty()
Récupère une propriété personnalisée de nodes ou d'edges du graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).str
: Nom de la propriété.str
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Property
: La propriété récupérée.
# Récupère la propriété de node @member.title dans le graphset 'UltipaTeam' et imprime toutes ses informations
requestConfig = RequestConfig(graphName="UltipaTeam")
property = Conn.getProperty(DBType.DBNODE, "title", "member", requestConfig)
print(property.toJSON())
{"description": "", "encrypt": "", "encrypted": false, "extra": "{}", "ignored": false, "lte": false, "name": "title", "propertyType": "", "read": true, "schema": "member", "subTypes": null, "type": "string", "write": true}
getNodeProperty()
Récupère une propriété personnalisée de nodes du graphset actuel.
Paramètres :
str
: Nom de la propriété.str
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Property
: La propriété récupérée.
# Récupère la propriété d'edge @relatesTo.type dans le graphset 'UltipaTeam' et imprime toutes ses informations
requestConfig = RequestConfig(graphName="UltipaTeam")
property = Conn.getNodeProperty("title", "member", requestConfig)
print(property.toJSON())
{"description": "", "encrypt": "", "encrypted": false, "extra": "{}", "ignored": false, "lte": false, "name": "title", "propertyType": "", "read": true, "schema": "member", "subTypes": null, "type": "string", "write": true}
getEdgeProperty()
Récupère une propriété personnalisée d'edges du graphset actuel.
Paramètres :
str
: Nom de la propriété.str
: Nom du schema.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Property
: La propriété récupérée.
# Récupère la propriété d'edge @relatesTo.type dans le graphset 'UltipaTeam' et imprime toutes ses informations
requestConfig = RequestConfig(graphName="UltipaTeam")
property = Conn.getEdgeProperty("type", "relatesTo", requestConfig)
print(property.toJSON())
{"description": "", "encrypt": "", "encrypted": false, "extra": "{}", "ignored": false, "lte": false, "name": "type", "propertyType": "", "read": true, "schema": "relatesTo", "subTypes": null, "type": "string", "write": true}
createProperty()
Crée une nouvelle propriété pour un node ou un edge schema dans le graphset actuel.
Paramètres :
DBType
: Type de la propriété (node ou edge).str
: Nom du schema, écrire*
pour spécifier tous les schemas.Property
: La propriété à créer ; les champsname
ettype
doivent être définis,description
est optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
UltipaResponse
: Résultat de la requête.
# Crée deux propriétés pour le schema de node 'member' dans le graphset 'UltipaTeam' et imprime les codes d'erreur
requestConfig = RequestConfig(graphName="UltipaTeam")
property1 = Property(
name="startDate",
type="datetime"
)
property2 = Property(
name="age",
type="int32"
)
response1 = Conn.createProperty(DBType.DBNODE, "member", property1, requestConfig)
print(response1.status.code)
response2 = Conn.createProperty(DBType.DBNODE, "member", property2, requestConfig)
print(response2.status.code)
0
0
createPropertyIfNotExist()
Crée une nouvelle propriété pour un node ou un edge schema dans le graphset actuel, en ignorant les erreurs si le nom de la propriété existe déjà.
Paramètres :
DBType
: Type de la propriété (node ou edge).str
: Nom du schema, écrire*
pour spécifier tous les schemas.Property
: La propriété à créer ; les champsname
ettype
doivent être définis,description
est optionnel.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
boolean
: Indique si la propriété existe déjà.UltipaResponse
: Résultat de la requête.
requestConfig = RequestConfig(graphName="UltipaTeam")
prop = Property(
name="startDate",
type="datetime"
)
# Crée une propriété pour le schema de node 'member' dans le graphset 'UltipaTeam' et imprime si la création a lieu
response1 = Conn.createPropertyIfNotExist(DBType.DBNODE, "member", prop, requestConfig)
if response1[0] is False:
print("Code =", response1[1].status.code)
else:
print("No response")
# Crée la même propriété à nouveau dans le graphset 'UltipaTeam' et imprime si la création a lieu
time.sleep(3)
response2 = Conn.createPropertyIfNotExist(DBType.DBNODE, "member", prop, requestConfig)
if response2[0] is False:
print("Code =", response2[1].status.code)
else:
print("No response")
Code = 0
No response
alterProperty()
Modifie le nom et la description d'une propriété personnalisée existante dans le graphset actuel par son nom.
Paramètres :
DBType
: Type de la propriété (node ou edge).Property
: La propriété existante à modifier ; les champsname
etschema
(écrire*
pour spécifier tous les schemas) doivent être définis.Property
: La nouvelle configuration pour la propriété existante ; l'un des champsname
oudescription
, ou les deux, doivent être définis.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
UltipaResponse
: Résultat de la requête.
requestConfig = RequestConfig(graphName="UltipaTeam")
# Renomme les propriétés 'name' associées à tous les schemas de nodes en `Name` dans le graphset 'UltipaTeam'
oldProperty = Property(
name="name",
schema="*"
)
newProperty = Property(
name="Name"
)
response = Conn.alterProperty(DBType.DBNODE, oldProperty, newProperty, requestConfig)
print(response.status.code)
0
dropProperty()
Supprime une propriété personnalisée du graphset actuel par son nom et le schema associé.
Paramètres :
DBType
: Type de la propriété (node ou edge).str
: Nom du schema ; écrire*
pour spécifier tous les schemas.str
: Nom de la propriété.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
requestConfig = RequestConfig(graphName="UltipaTeam")
# Supprime les propriétés 'startDate' associées à tous les schemas de nodes dans le graphset 'UltipaTeam' et imprime le code d'erreur
response1 = Conn.dropProperty(DBType.DBNODE, "*", "startDate", requestConfig)
print(response1.status.code)
# Supprime la propriété de node @member.name dans le graphset 'UltipaTeam' et imprime le code d'erreur
response2 = Conn.dropProperty(DBType.DBNODE, "member", "name", requestConfig)
print(response2.status.code)
0
0
Exemple Complet
from ultipa.configuration.RequestConfig import RequestConfig
from ultipa import Connection, UltipaConfig, Schema, DBType
from ultipa.structs import Property
ultipaConfig = UltipaConfig()
# URI example: ultipaConfig.hosts = ["mqj4zouys.us-east-1.cloud.ultipa.com:60010"]
ultipaConfig.hosts = ["192.168.1.85:60061", "192.168.1.87:60061", "192.168.1.88:60061"]
ultipaConfig.username = "<username>"
ultipaConfig.password = "<password>"
Conn = Connection.NewConnection(defaultConfig=ultipaConfig)
# Request configurations
requestConfig = RequestConfig(graphName="UltipaTeam")
# Crée le schema de node 'utility' (avec propriétés) dans le graphset 'UltipaTeam' et imprime le code d'erreur
utility = Schema(
name="utility",
description="Office utilities",
dbType=DBType.DBNODE,
properties=[
Property(name="name", type="string"),
Property(name="purchaseDate", type="datetime")
]
)
response = Conn.createSchema(utility, True, requestConfig)
print(response.status.code)