修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

搜索
    中文

      批量插入

      数据类型

      嬴图属性与Go数据类型的对应关系:

      Ultipa Go
      string string
      text string
      float float32
      double float64
      int32 int32
      uint32 uint32
      int64 int64
      uint64 uint64
      datetime interface{}
      timestamp interface{}

      可以使用utils.StringAsInterface(str string, t ultipa.PropertyType) (interface{}, error)将数据的字符串形式转为相应的嬴图属性类型。

      需注意,string中的数据格式如果与ultipa.PropertyType不一致,转换会失败。例如:

      • abc转为ultipa.PropertyType_INT32时,由于'abc'不是数字,转换会失败;
      • 2020-1-3 3:34:1转为ultipa.PropertyType_datetime时,由于时间格式未遵守yyyy-mm-dd hh:mm:ss格式,转换会失败。

      InsertNodesBatchBySchema()

      InsertNodesBatchBySchema()可以为某一个点schema导入多条数据,需保证数据携带的属性与声明schema时携带的属性一致。

      方法及相关类:

      InsertNodesBatchBySchema(schema *structs.Schema, 
      						 rows []*structs.Node, 
                               config *configuration.InsertRequestConfig
      ) (*http.InsertResponse, error)
      
      Schema struct {
      	Name       string
      	Properties []*Property
      	Desc       string
      	Type       string
      	DBType     ultipa.DBType
      	Total      int
      }
      
      Property struct {
      	Name   string
      	Desc   string
      	Lte    bool
      	Schema string
      	Type   ultipa.PropertyType
      }
      
      Node struct {
      	Name   string
      	ID     types.ID
      	UUID   types.UUID
      	Schema string
      	Values *Values
      }
      

      示例:为图集test的点schema customer插入多条数据,采用普通插入模式

      func TestMisc(t *testing.T) {
          // 创建名为conn的连接并使用default图集,此部分代码省略
        
      	schema := &structs.Schema{
      		Name:   "customer",
      		DBType: ultipa.DBType_DBNODE,
      		Properties: []*structs.Property{
      			{
      				Name: "name",
      				Type: ultipa.PropertyType_STRING,
      			},
      			{
      				Name: "age",
      				Type: ultipa.PropertyType_INT32,
      			},
      		},
      	}
      
      	var nodes []*structs.Node
      
      	node1 := structs.NewNode()
      	node1.Set("name", "Paal")
      	node1.Set("age", int32(34))
      	nodes = append(nodes, node1)
      
      	node2 := structs.NewNode()
      	node2.Set("name", "Alice")
      	node2.Set("age", int32(23))
      	nodes = append(nodes, node2)
      
      	_, err := conn.InsertNodesBatchBySchema(schema, nodes, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_NORMAL,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}  
      }
      

      InsertNodesBatchAuto()

      InsertNodesBatchAuto()可以同时为多个点schema导入多条数据,需保证数据携带schema,且携带的属性与图集中该schema的属性一致。

      方法及相关类:

      InsertNodesBatchAuto(nodes []*structs.Node, 
      					 config *configuration.InsertRequestConfig
      ) (*http.InsertBatchAutoResponse, error)
      
      Node struct {
      	Name   string
      	ID     types.ID
      	UUID   types.UUID
      	Schema string
      	Values *Values
      }
      

      示例:为图集test的多个点schema插入多条数据,采用插入更新模式

      func TestMisc(t *testing.T) {
          // 创建名为conn的连接并使用default图集,此部分代码省略
        
      	var nodes []*structs.Node
      
      	node1 := structs.NewNode()
      	node1.Schema = "customer"
      	node1.ID = "ULTIPA8000000000000029"
      	node1.Set("name", "Paal")
      	node1.Set("age", int32(36))
      	nodes = append(nodes, node1)
      
      	node2 := structs.NewNode()
      	node2.Schema = "card"
      	node2.Set("balance", float32(25756.27))
      	nodes = append(nodes, node2)
      
      	_, err := conn.InsertNodesBatchAuto(nodes, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_UPSERT,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}
      }
      

      InsertEdgesBatchBySchema()

      InsertEdgesBatchBySchema()可以为某一个边schema导入多条数据,需保证数据携带的属性与声明schema时携带的属性一致。

      方法及相关类:

      InsertEdgesBatchBySchema(schema *structs.Schema, 
      						 rows []*structs.Edge, 
                               config *configuration.InsertRequestConfig
      ) (*http.InsertResponse, error)
      
      Schema struct {
      	Name       string
      	Properties []*Property
      	Desc       string
      	Type       string
      	DBType     ultipa.DBType
      	Total      int
      }
      
      Property struct {
      	Name   string
      	Desc   string
      	Lte    bool
      	Schema string
      	Type   ultipa.PropertyType
      }
      
      Edge struct {
      	Name     string
      	From     types.ID
      	To       types.ID
      	FromUUID types.UUID
      	ToUUID   types.UUID
      	UUID     types.UUID
      	Schema   string
      	Values   *Values
      }
      

      示例:为图集test的边schema transfer插入多条数据,采用普通插入模式,允许自动插入点的起点/终点

      func TestMisc(t *testing.T) {
          // 创建名为conn的连接并使用default图集,此部分代码省略
        
      	schema := &structs.Schema{
      		Name:   "transfer",
      		DBType: ultipa.DBType_DBEDGE,
      		Properties: []*structs.Property{
      			{
      				Name: "amount",
      				Type: ultipa.PropertyType_FLOAT,
      			},
      		},
      	}
      
      	var edges []*structs.Edge
      
      	edge1 := structs.NewEdge()
      	edge1.From = "ULTIPA8000000000000002"
      	edge1.To = "ULTIPA8000000000000003"
      	edge1.Set("amount", float32(2500))
      	edges = append(edges, edge1)
      
      	edge2 := structs.NewEdge()
      	edge2.From = "ULTIPA8000000000000007"
      	edge2.To = "ULTIPA8000000000000005"
      	edge2.Set("amount", float32(125.5))
      	edges = append(edges, edge2)
      
      	_, err := conn.InsertEdgesBatchBySchema(schema, edges, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_NORMAL,
              CreateNodeIfNotExist: true,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}
      

      InsertEdgesBatchAuto()

      InsertEdgesBatchAuto()可以同时为多个边schema导入多条数据,需保证数据携带schema,且携带的属性与图集中该schema的属性一致。

      方法及相关类:

      InsertEdgesBatchAuto(edges []*structs.Edge, 
      					 config *configuration.InsertRequestConfig
      ) (*http.InsertBatchAutoResponse, error)
      
      Edge struct {
      	Name     string
      	From     types.ID
      	To       types.ID
      	FromUUID types.UUID
      	ToUUID   types.UUID
      	UUID     types.UUID
      	Schema   string
      	Values   *Values
      }
      

      示例:为图集test的多个边schema插入多条数据,采用插入覆盖模式,允许自动插入点的起点/终点

      func TestMisc(t *testing.T) {
          // 创建名为conn的连接并使用default图集,此部分代码省略
        
      	var edges []*structs.Edge
      
      	edge1 := structs.NewEdge()
      	edge1.Schema = "transfer"
      	edge1.UUID = uint64(27)
      	edge1.From = "ULTIPA8000000000000002"
      	edge1.To = "ULTIPA8000000000000003"
      	edge1.Set("amount", float32(245.4))
      	edges = append(edges, edge1)
      
      	edge2 := structs.NewEdge()
      	edge2.Schema = "default"
      	edge2.From = "ULTIPA800000000000001A"
      	edge2.To = "ULTIPA800000000000001B"
      	edges = append(edges, edge2)
      
      	_, err := conn.InsertEdgesBatchAuto(edges, &configuration.InsertRequestConfig{
      		RequestConfig: &configuration.RequestConfig{
      			GraphName: "test",
      		},
      		InsertType: ultipa.InsertType_OVERWRITE,
              CreateNodeIfNotExist: true,
      	})
      
      	if err != nil {
      		log.Fatalln(err)
      	}
      }
      
      请完成以下信息后可下载此书
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写
      *
      你的电话必须填写