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

      Insertion et Suppression de Données

      Cette section introduit des méthodes sur un objet Connection pour insérer des nodes et des edges au graph ou supprimer des nodes et des edges du 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.

      Exemple de Modèle de Données de Graph

      Les exemples ci-dessous démontrent comment insérer ou supprimer des nodes ou des edges d'un graphset avec le schema et les propriétés suivantes :

      Correspondance des Types de Propriétés

      Lors de l'insertion de nodes ou d'edges, il peut être nécessaire de spécifier des valeurs de propriétés de différents types. La correspondance entre les types de propriétés Ultipa et les types de données Node.js/Driver est la suivante :

      Type de Propriété Ultipa
      Type NodeJS/Driver
      int32 number
      uint32 number
      int64 string
      uint64 string
      float string
      double string
      decimal string
      string string
      text string
      datetime string
      timestamp number
      point string
      blob Buffer
      list Array
      set Array

      Insertion

      insertNodes()

      Insère de nouveaux nodes d'un schema dans le graph actuel.

      Paramètres :

      • string: Nom du schema.
      • Node[]: La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. L'objet Response contient un alias nodes qui détient tous les nodes insérés lorsque InsertRequestConfig.slient est réglé sur faux.

      // Insère deux nodes dans le schema 'user' dans le graphset 'lcc', imprime le code erreur et les informations des nodes insérés
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let resp = await conn.insertNodes(
        "user",
        [
          {
            _id: "U001",
            _uuid: 1,
            name: "Alice",
            age: 18,
            score: "65.32",
            birthday: "1993-5-4",
            location: `POINT(23.63 104)`,
            profile: "abc",
            interests: ["tennis", "violin"],
            permissionCodes: [2004, 3025, 1025],
          },
          { _id: "U002", _uuid: 2, name: "Bob" },
        ],
        insertRequestConfig
      );
      console.log(resp.status.code_desc);
      console.log(resp.data);
      

      SUCCESS
      [
        Node { id: 'U001', uuid: '1', schema: 'user', values: {} },
        Node { id: 'U002', uuid: '2', schema: 'user', values: {} }
      ]
      

      insertEdges()

      Insère de nouveaux edges d'un schema dans le graph actuel.

      Paramètres :

      • string: Nom du schema.
      • Edge[]: La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. L'objet Response contient un alias edges qui détient tous les edges insérés lorsque InsertRequestConfig.slient est réglé sur faux.

      // Insère deux edges dans le schema 'follows' dans le graphset 'lcc', imprime le code erreur et les informations des edges insérés
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: true,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let resp = await conn.insertEdges(
        "follows",
        [
          {
            _uuid: 1,
            _from: "U001",
            _to: "U002",
            createdOn: "2024-5-6",
          },
          {
            _uuid: 2,
            _from: "U002",
            _to: "U001",
            createdOn: "2024-5-8",
          },
        ],
        insertRequestConfig
      );
      console.log(resp.status.code_desc);
      console.log(resp.data);
      

      SUCCESS
      [
        Edge {
          from: 'U001',
          to: 'U002',
          uuid: '1',
          from_uuid: '1',
          to_uuid: '2',
          schema: 'follows',
          values: {}
        },
        Edge {
          from: 'U002',
          to: 'U001',
          uuid: '2',
          from_uuid: '2',
          to_uuid: '1',
          schema: 'follows',
          values: {}
        }
      ]
      

      insertNodesBatchBySchema()

      Insère de nouveaux nodes d'un schema dans le graph actuel via gRPC. Les propriétés dans les valeurs du node doivent être cohérentes avec celles déclarées dans la structure de schema.

      Paramètres :

      • Schema: Le schema cible.
      • Node[]: La liste des objets Node à insérer.
      • InsertRequestConfig: Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. Response.InsertNodesReply contient le rapport d'insertion lorsque InsertRequestConfig.slient est réglé sur faux.

      // Insère deux nodes dans le schema 'user' dans le graphset 'lcc' et imprime le code erreur 
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let proInfo: ULTIPA.Property[] = [];
      let pro1: ULTIPA.Property = {
        name: "name",
        type: ULTIPA.PropertyType.string,
      };
      let pro2: ULTIPA.Property = {
        name: "age",
        type: ULTIPA.PropertyType.int32,
      };
      let pro3: ULTIPA.Property = {
        name: "score",
        type: ULTIPA.PropertyType.decimal,
      };
      let pro4: ULTIPA.Property = {
        name: "birthday",
        type: ULTIPA.PropertyType.datetime,
      };
      let pro5: ULTIPA.Property = {
        name: "location",
        type: ULTIPA.PropertyType.point,
      };
      let pro6: ULTIPA.Property = {
        name: "profile",
        type: ULTIPA.PropertyType.blob,
      };
      let pro7: ULTIPA.Property = {
        name: "interests",
        type: ULTIPA.PropertyType.list,
      };
      let pro8: ULTIPA.Property = {
        name: "permissionCodes",
        type: ULTIPA.PropertyType.set,
      };
      
      const pros = [pro1, pro2, pro3, pro4, pro5, pro6, pro7, pro8];
      for (const item of pros) {
        proInfo.push(item);
      }
      
      let nodeInfo1 = new ULTIPA.Node();
      nodeInfo1.id = "U001";
      nodeInfo1.uuid = "1";
      nodeInfo1.set("name", "Alice");
      nodeInfo1.set("age", 18);
      nodeInfo1.set("score", "65.32");
      nodeInfo1.set("birthday", "1993-5-4");
      nodeInfo1.set("location", `POINT(23.63 104)`);
      nodeInfo1.set("profile", "abc");
      nodeInfo1.set("interests", ["tennis", "violin"]);
      nodeInfo1.set("permissionCodes", [2004, 3025, 1025]);
      let node1: ULTIPA.Node[] = [];
      node1.push(nodeInfo1);
      
      let insert1 = await conn.insertNodesBatchBySchema(
        { dbType: ULTIPA.DBType.DBNODE, name: "user", properties: proInfo },
        node1,
        insertRequestConfig
      );
      console.log(insert1.status.code_desc);
      
      let nodeInfo2 = new ULTIPA.Node();
      nodeInfo2.id = "U002";
      nodeInfo2.uuid = "2";
      nodeInfo2.set("name", "Bob");
      nodeInfo2.set("age", null);
      nodeInfo2.set("score", null);
      nodeInfo2.set("birthday", null);
      nodeInfo2.set("location", null);
      nodeInfo2.set("profile", null);
      nodeInfo2.set("interests", null);
      nodeInfo2.set("permissionCodes", null);
      let node2: ULTIPA.Node[] = [];
      node2.push(nodeInfo2);
      
      let insert2 = await conn.insertNodesBatchBySchema(
        { dbType: ULTIPA.DBType.DBNODE, name: "user", properties: proInfo },
        node2,
        insertRequestConfig
      );
      console.log(insert2.status.code_desc);
      

      SUCCESS
      SUCCESS
      

      insertEdgesBatchBySchema()

      Insère de nouveaux edges d'un schema dans le graph actuel via gRPC. Les propriétés dans les valeurs de edge doivent être cohérentes avec celles déclarées dans la structure de schema.

      Paramètres :

      • Schema: Le schema cible.
      • Edge[]: La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. Response.InsertNodesReply contient le rapport d'insertion lorsque InsertRequestConfig.slient est réglé sur faux.

      // Insère deux edges dans le schema 'follows' dans le graphset 'lcc' et imprime le code erreur
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let proInfo: ULTIPA.Property[] = [];
      let pro: ULTIPA.Property = {
        name: "createdOn",
        type: ULTIPA.PropertyType.PROPERTY_TIMESTAMP,
      };
      proInfo.push(pro);
      
      let edgeInfo1 = new ULTIPA.Edge();
      edgeInfo1.uuid = "1";
      edgeInfo1.from = "U001";
      edgeInfo1.to = "U002";
      edgeInfo1.set("createdOn", 1714953600);
      let edge1: ULTIPA.Edge[] = [];
      edge1.push(edgeInfo1);
      
      let insert1 = await conn.insertEdgesBatchBySchema(
        { dbType: ULTIPA.DBType.DBEDGE, name: "follows", properties: proInfo },
        edge1,
        insertRequestConfig
      );
      console.log(insert1.status.code_desc);
      
      let edgeInfo2 = new ULTIPA.Edge();
      edgeInfo2.uuid = "2";
      edgeInfo2.from = "U002";
      edgeInfo2.to = "U001";
      edgeInfo2.set("createdOn", 1715126400);
      let edge2: ULTIPA.Edge[] = [];
      edge2.push(edgeInfo2);
      
      let insert2 = await conn.insertEdgesBatchBySchema(
        { dbType: ULTIPA.DBType.DBEDGE, name: "follows", properties: proInfo },
        edge2,
        insertRequestConfig
      );
      console.log(insert2.status.code_desc);
      

      SUCCESS
      SUCCESS
      

      insertNodesBatchAuto()

      Insère de nouveaux nodes d'un ou plusieurs schemas dans le graph actuel via gRPC. Les propriétés dans les valeurs du node doivent être cohérentes avec celles définies dans la structure du schema correspondant.

      Paramètres :

      • Node[]: La liste des objets Node à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. Response.InsertNodesReply contient le rapport d'insertion lorsque InsertRequestConfig.slient est réglé sur faux.

      // Insère deux nodes dans le schema 'user' et un node dans le schema `product` dans le graphset 'lcc' et imprime le code erreur
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let nodeInfo1 = new ULTIPA.Node();
      nodeInfo1.schema = "user";
      nodeInfo1.id = "U001";
      nodeInfo1.uuid = "1";
      nodeInfo1.set("name", "Alice");
      nodeInfo1.set("age", 18);
      nodeInfo1.set("score", "65.32");
      nodeInfo1.set("birthday", "1993-5-4");
      nodeInfo1.set("location", `POINT(23.63 104)`);
      nodeInfo1.set("profile", "abc");
      nodeInfo1.set("interests", ["tennis", "violin"]);
      nodeInfo1.set("permissionCodes", [2004, 3025, 1025]);
      let node1: ULTIPA.Node[] = [];
      node1.push(nodeInfo1);
      
      let insert1 = await conn.insertNodesBatchAuto(node1, insertRequestConfig);
      console.log(insert1.status.code_desc);
      
      let nodeInfo2 = new ULTIPA.Node();
      nodeInfo2.schema = "user";
      nodeInfo2.id = "U002";
      nodeInfo2.uuid = "2";
      nodeInfo2.set("name", "Bob");
      nodeInfo2.set("age", null);
      nodeInfo2.set("score", null);
      nodeInfo2.set("birthday", null);
      nodeInfo2.set("location", null);
      nodeInfo2.set("profile", null);
      nodeInfo2.set("interests", null);
      nodeInfo2.set("permissionCodes", null);
      let node2: ULTIPA.Node[] = [];
      node2.push(nodeInfo2);
      
      let insert2 = await conn.insertNodesBatchAuto(node2, insertRequestConfig);
      console.log(insert2.status.code_desc);
      
      let nodeInfo3 = new ULTIPA.Node();
      nodeInfo3.schema = "product";
      nodeInfo3.id = "P001";
      nodeInfo3.uuid = "3";
      nodeInfo3.set("name", "Wireless Earbud");
      nodeInfo3.set("price", 93.2);
      let node3: ULTIPA.Node[] = [];
      node3.push(nodeInfo3);
      
      let insert3 = await conn.insertNodesBatchAuto(node3, insertRequestConfig);
      console.log(insert3.status.code_desc);
      

      SUCCESS
      SUCCESS
      SUCCESS
      

      insertEdgesBatchAuto()

      Insère de nouveaux edges d'un ou plusieurs schemas dans le graph actuel via gRPC. Les propriétés dans les valeurs d'edge doivent être cohérentes avec celles définies dans la structure du schema correspondant.

      Paramètres :

      • Edge[]: La liste des objets Edge à insérer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. Response.InsertEdgesReply contient le rapport d'insertion lorsque InsertRequestConfig.slient est réglé sur faux.

      // Insère deux edges dans le schema 'follows' et un edge dans le schema 'purchased' dans le graphset 'lcc' et imprime le code erreur
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let edgeInfo1 = new ULTIPA.Edge();
      edgeInfo1.schema = "follows";
      edgeInfo1.uuid = "1";
      edgeInfo1.from = "U001";
      edgeInfo1.to = "U002";
      edgeInfo1.set("createdOn", 1714953600);
      let edge1: ULTIPA.Edge[] = [];
      edge1.push(edgeInfo1);
      
      let insert1 = await conn.insertEdgesBatchAuto(edge1, insertRequestConfig);
      console.log(insert1.status.code_desc);
      
      let edgeInfo2 = new ULTIPA.Edge();
      edgeInfo2.schema = "follows";
      edgeInfo2.uuid = "2";
      edgeInfo2.from = "U002";
      edgeInfo2.to = "U001";
      edgeInfo2.set("createdOn", 1715126400);
      let edge2: ULTIPA.Edge[] = [];
      edge2.push(edgeInfo2);
      
      let insert2 = await conn.insertEdgesBatchAuto(edge2, insertRequestConfig);
      console.log(insert2.status.code_desc);
      
      let edgeInfo3 = new ULTIPA.Edge();
      edgeInfo3.schema = "purchased";
      edgeInfo3.uuid = "3";
      edgeInfo3.from = "U002";
      edgeInfo3.to = "P001";
      edgeInfo3.set("qty", 1);
      let edge3: ULTIPA.Edge[] = [];
      edge3.push(edgeInfo3);
      
      let insert3 = await conn.insertEdgesBatchAuto(edge3, insertRequestConfig);
      console.log(insert3.status.code_desc);
      

      SUCCESS
      SUCCESS
      SUCCESS
      

      Suppression

      deleteNodes()

      Supprime des nodes qui répondent aux conditions données du graph actuel. Il est important de noter que la suppression d'un node entraîne la suppression de tous les edges qui y sont connectés.

      Paramètres :

      • string: La condition de filtrage pour spécifier les nodes à supprimer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. L'objet Response contient un alias nodes qui détient tous les nodes supprimés lorsque InsertRequestConfig.slient est réglé sur faux.

      // Supprime un node @user dont le nom est 'Alice' du graphset 'lcc' et imprime le code erreur
      // Tous les edges attachés au node supprimé sont également supprimés
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let resp = await conn.deleteNodes(
        "{@user.name == 'Alice'}",
        insertRequestConfig
      );
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      deleteEdges()

      Supprime des edges qui répondent aux conditions données du graph actuel.

      Paramètres :

      • string: La condition de filtrage pour spécifier les edges à supprimer.
      • InsertRequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response: Résultat de la requête. L'objet Response contient un alias edges qui détient tous les edges supprimés lorsque InsertRequestConfig.slient est réglé sur faux.

      // Supprime tous les edges @purchased du graphset 'lcc' et imprime le code erreur
      
      let insertRequestConfig = <RequestType.InsertRequestConfig>{
        insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
        silent: false,
        graphSetName: "lcc",
        useMaster: true,
      };
      
      let resp = await conn.deleteEdges("{@purchased}", insertRequestConfig);
      console.log(resp.status.code_desc);
      

      SUCCESS
      

      Exemple Complet

      import { ConnectionPool, ULTIPA } from "@ultipa-graph/ultipa-node-sdk";
      import { GraphExra } from "@ultipa-graph/ultipa-node-sdk/dist/connection/extra/graph.extra";
      import { getEdgesPrintInfo } from "@ultipa-graph/ultipa-node-sdk/dist/printers/edge";
      import { RequestType } from "@ultipa-graph/ultipa-node-sdk/dist/types";
      import { ListFormat } from "typescript";
      
      let sdkUsage = async () => {
        // Connection configurations
        //URI example: hosts="mqj4zouys.us-east-1.cloud.ultipa.com:60010"
        let hosts = [
          "192.168.1.85:60061",
          "192.168.1.86:60061",
          "192.168.1.87:60061",
        ];
        let username = "***";
        let password = "***";
        let connPool = new ConnectionPool(hosts, username, password);
      
        // Établit la connexion à la base de données
        let conn = await connPool.getActive();
        let isSuccess = await conn.test();
        console.log(isSuccess);
      
        // Configurations de la requête d'insertion
        let insertRequestConfig = <RequestType.InsertRequestConfig>{
          insertType: ULTIPA.InsertType.INSERT_TYPE_NORMAL,
          silent: false,
          graphSetName: "lcc",
          useMaster: true,
        };
      
        // Insère deux nodes dans le schema 'user' et un node dans le schema `product` dans le graphset 'lcc' et imprime le code erreur
      
        let nodeInfo1 = new ULTIPA.Node();
        nodeInfo1.schema = "user";
        nodeInfo1.id = "U001";
        nodeInfo1.uuid = "1";
        nodeInfo1.set("name", "Alice");
        nodeInfo1.set("age", 18);
        nodeInfo1.set("score", "65.32");
        nodeInfo1.set("birthday", "1993-5-4");
        nodeInfo1.set("location", `POINT(23.63 104)`);
        nodeInfo1.set("profile", "abc");
        nodeInfo1.set("interests", ["tennis", "violin"]);
        nodeInfo1.set("permissionCodes", [2004, 3025, 1025]);
        let node1: ULTIPA.Node[] = [];
        node1.push(nodeInfo1);
      
        let insert1 = await conn.insertNodesBatchAuto(node1, insertRequestConfig);
        console.log(insert1.status.code_desc);
      
        let nodeInfo2 = new ULTIPA.Node();
        nodeInfo2.schema = "user";
        nodeInfo2.id = "U002";
        nodeInfo2.uuid = "2";
        nodeInfo2.set("name", "Bob");
        nodeInfo2.set("age", null);
        nodeInfo2.set("score", null);
        nodeInfo2.set("birthday", null);
        nodeInfo2.set("location", null);
        nodeInfo2.set("profile", null);
        nodeInfo2.set("interests", null);
        nodeInfo2.set("permissionCodes", null);
        let node2: ULTIPA.Node[] = [];
        node2.push(nodeInfo2);
      
        let insert2 = await conn.insertNodesBatchAuto(node2, insertRequestConfig);
        console.log(insert2.status.code_desc);
      
        let nodeInfo3 = new ULTIPA.Node();
        nodeInfo3.schema = "product";
        nodeInfo3.id = "P001";
        nodeInfo3.uuid = "3";
        nodeInfo3.set("name", "Wireless Earbud");
        nodeInfo3.set("price", 93.2);
        let node3: ULTIPA.Node[] = [];
        node3.push(nodeInfo3);
      
        let insert3 = await conn.insertNodesBatchAuto(node3, insertRequestConfig);
        console.log(insert3.status.code_desc);
      };
      
      sdkUsage().then(console.log).catch(console.log);  
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写