Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v4.5
Search
    Français
    v4.5

      Alias

      Vue d'ensemble

      Alias est utilisé pour nommer les données générées pendant l'exécution de UQL, ce qui permet de les utiliser ou de les retourner ultérieurement.

      Alias

      Alias personnalisé

      Définir un alias personnalisé

      Un alias personnalisé est défini en utilisant le mot-clé as. Notez les points suivants :

      • L'alias doit être défini dans la clause où les données sont générées.
      • Un alias peut être renommé, mais seul le dernier défini est valide.
      • Un nom d'alias ne peut être utilisé qu'une seule fois dans une instruction UQL, même s'il est obsolète en raison du renommage de l'alias.

      En UQL, si des données récupérées ne sont jamais utilisées sans définir d'alias, ou si un alias est défini mais jamais utilisé ou retourné, les deux cas peuvent avoir un effet négatif sur la validité de UQL.

      Conventions de nommage

      Le nom d'un alias personnalisé doit :

      • contenir entre 1 et 64 caractères;
      • ne pas commencer par le symbole tilde (~);
      • ne pas contenir de backquotes (`);
      • ne pas utiliser de mots réservés par le système.

      Quand un alias contient des caractères autres que des lettres, des chiffres et des tirets bas, il doit être entouré de paires de backquotes (`) lorsqu'il est utilisé dans UQL. Voici un exemple :

      find().nodes() as `my-Nodes`
      return `my-Nodes`
      

      Il est suggéré de ne pas utiliser le nom d'une propriété comme alias. Si nécessaire, utilisez l'alias système this pour lever les ambiguïtés lorsque requis.

      Alias système

      Il existe trois alias système dans UQL :

      Alias Système
      Où Utilisé
      Données Représentées
      this Tout filtre de node ou edge Node ou edge actuel
      prev_n Filtre dans le modèle de node ou d'edge Node précédent du node ou edge actuel
      prev_e Filtre dans le modèle de node ou d'edge Edge précédent du node ou edge actuel

      this

      Dans le filtre de node ou d'edge, vous pouvez généralement omettre l'utilisation de this, qui représente le node ou edge actuel. Par exemple, le filtre de node {balance > 5000} dans le UQL suivant est en réalité équivalent à {this.balance > 5000}.

      find().nodes({balance > 5000}) as n
      return n
      

      Cependant, this ne peut être omis en cas d'ambiguïté. Cela se produit lorsqu'un alias personnalisé et une propriété portent le même nom. Dans l'exemple ci-dessous, balance est le nom à la fois de l'alias et d'une propriété de node. Utiliser this dans le filtre indique clairement que balance se réfère à la propriété de node. Si {balance > 5000} est écrit dans ce cas, l'alias balance est utilisé à la place.

      ... as balance
      find().nodes({this.balance > 5000})
      ...
      

      prev_n

      prev_n est exclusivement applicable dans un modèle de node ou d'edge, se référant au node le plus proche à gauche du node ou edge actuel dans le path.

      • Utilisation dans le modèle de node ou d'edge unique :

      Lors de l'utilisation de prev_n dans le premier n() du modèle de path, le node référencé par prev_n n'existe pas physiquement. Par conséquent, toute comparaison impliquant prev_n avec les opérateurs ==, !=, >, >=, < et <= renvoie TRUE. Le résultat des autres opérateurs est imprévisible.

      • Utilisation dans le modèle multi-edge :

      Il est important de souligner que tous les nodes référencés par prev_n doivent posséder la propriété mentionnée par prev_n. Considérons l'exemple ci-dessous qui recherche les paths "@actor - [@actsIn] - @movie" et match les noeuds de film dont la notation doit être supérieure à celle du noeud d'acteur. Si @actor manque de la propriété de notation, la requête ne donnera aucun résultat.

      n({@actor}).e({@actsIn}).n({@movie.rating > prev_n.rating})
      return p{*}
      

      prev_e

      prev_e est exclusivement applicable dans un modèle de node ou d'edge, se référant à l'edge le plus proche à gauche du node ou edge actuel dans le path.

      • Utilisation dans le modèle de node ou d'edge unique :
      • Utilisation dans le modèle multi-edge :

      Lors de l'utilisation de prev_e dans le premier n(), e() ou e()[<>] du modèle de path, le (premier) edge référencé par prev_e n'existe pas physiquement. Par conséquent, toute comparaison impliquant prev_e avec les opérateurs ==, !=, >, >=, < et <= renvoie true. Le résultat des autres opérateurs est imprévisible.

      Il est important de souligner que tous les edges référencés par prev_e doivent posséder la propriété mentionnée par prev_e. Considérons l'exemple ci-dessous qui recherche les paths "holder - [@holds] - @card - [@transfersTo] - @card - [@transfersTo] - @card - [@holds] - holder" et s'assure que le temps de transaction est ascendant. Cependant, le prev_e implique également le premier edge @holds, si @holds manque de la propriété temps, la requête ne donnera aucun résultat.

      n({@user} as holder)
        .e({@holds}).n({@card})
        .e({@transfersTo.time > prev_e.time})[:2]
        .n({@card}).e({@holds})
        .n(holder) as p
      return p{*}
      

      Alias par défaut

      Dans UQL, deux alias par défaut sont prédéfinis :

      Alias par défaut
      Où Appliqué Données Représentées
      nodes Clause find().nodes() Nodes récupérés
      edges Clause find().edges() Edges récupérés

      Vous pouvez utiliser ces alias par défaut directement sans les définir :

      find().nodes({@account})
      return nodes{*}
      

      Cependant, l'alias par défaut devient invalide lorsqu'un alias personnalisé est défini à la place.

      Alias de Clause et Alias de Méthode

      Dans certaines clauses UQL, vous pouvez définir un alias pour l'ensemble de la clause (appelé alias de clause), et pour des méthodes spécifiques (appelé alias de méthode). Veuillez vous référer à la syntaxe de chaque clause pour plus de détails.

      Exemple : Définir un alias pour la clause find().edges()

      find().edges({@direct}) as e
      return e
      

      Il n'est pas permis de définir un alias pour les méthodes find() ou edges() séparément.

      Exemple : Définir des alias pour la clause autonet().src().dest().depth() et l'une de ses méthodes src()

      autonet().src({age < 60} as startNodes).dest({@event}).depth(:3) as paths
      return startNodes, paths
      

      Exemple : Définir des alias pour la clause find().nodes() et la clause WITH :

      find().nodes({@account}) as a
      with min(a.age) as minAge
      find().nodes({@account.age == minAge}) as b
      return b.name
      

      Type d'Alias

      Le type d'un alias est déterminé par les données qu'il représente. Ci-dessous se trouve un exemple de définition et appel de plusieurs alias :

      • L'alias users représente des nodes et est de type NODE.
      • L'alias maxAge représente la valeur maximale de la property age, qui peut être de divers types numériques tels que int32 ou int64.
      • L'alias signups représente des edges et est de type EDGE.
      • L'alias p représente des paths et est de type PATH.
      find().nodes({@user}) as users
      with max(users.age) as maxAge
      n({@user.age == maxAge}).e({@signsUp} as signups).n({@course}) as p
      return signups, p
      

      Appel d'Alias

      Selon le type d'alias, vous pouvez soit appeler directement l'alias dans certaines clauses, soit extraire des données spécifiques de l'alias pour les utiliser.

      Le tableau ci-dessous montre les appels d'exemple d'alias de différents types :

      Note : nodes, edges, paths, myLists, myPoints, myObjects et myItems sont des alias de type NODE, EDGE, PATH, liste, point, objet et autres respectivement.

      Format d'Appel
      Données Représentées Type de Données
      nodes Nodes NODE
      nodes.name Valeurs de la propriété name Même que la propriété
      nodes.@ Schemas des nodes string
      edges Edges EDGE
      edges.time Valeurs de la propriété de edge time Même que la propriété
      edges.@ Schemas des edges string
      paths Paths PATH
      myLists Listes list
      myLists[2] Les 3èmes éléments dans les listes Même que l'élément
      myLists[0:3] Sous-listes formées par les 1ers aux 4èmes éléments dans les listes list
      myLists[:5] Sous-listes formées par les 1ers aux 6èmes éléments dans les listes list
      myLists[2:] Sous-listes formées par les éléments à partir de l'indice 2 jusqu'à la fin dans les listes list
      myPoints Points, chacun avec deux coordonnées point
      myPoints.x Valeurs des coordonnées x double
      myPoints.y Valeurs des coordonnées y double
      myObjects.age Valeurs de la clé age Identique à la clé
      myItems Valeurs Identique à la valeur

      Alias de type TABLE ne peut pas être appelé dans UQL.

      Plus de formats d'appel sont supportés dans la clause RETURN. Veuillez cliquer ici pour plus d'informations.

      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写