业务开发指南
连接tugraph-db
驱动连接
tugraph-db兼容neo4j的通讯协议,因此可以使用neo4j的驱动连接tugraph-db的server。
终端连接
驱动是业务代码里面使用的,对于服务器上终端访问,可以使用cli客户端。
子图操作
创建子图
CALL dbms.graph.createGraph('graph1')
删除子图
CALL dbms.graph.deleteGraph('graph1')
清空子图
删除所有的点边数据和图schema
CALL db.dropDB()
只删除所有点边数据, 保留图schema
CALL db.dropAllVertex()
查看图schema
CALL dbms.graph.getGraphSchema()
列出所有子图
CALL dbms.graph.listGraphs()
刷新子图文件系统缓存数据
CALL db.flushDB()
点类型操作
创建点类型
如下json定义了一个点类型,名字是node1
。
{
"label": "node1",
"primary": "id",
"type": "VERTEX",
"detach_property": true,
"properties": [{
"name": "id",
"type": "INT32",
"optional": false
}, {
"name": "name",
"type": "STRING",
"optional": false,
"index": true
}, {
"name": "num",
"type": "INT32",
"optional": false,
"index": true,
"unique": true
}, {
"name": "desc",
"type": "STRING",
"optional": true
}]
}
把上面这个json序列化成字符串,作为参数传入,建议使用驱动的参数化特性,避免自己拼接语句。
CALL db.createVertexLabelByJson($json_data)
查看点类型schema
CALL db.getVertexSchema('node1')
删除点类型
该操作会同步删除所有该类型的点数据,数据量大的时候,有时间消耗。
如下例子删除点类型node1
以及该类型的所有点数据。
CALL db.deleteLabel('vertex', 'node1')
点类型添加字段
该操作会同步变更所有该类型点的属性数据,数据量大的时候,有时间消耗。
如下例子,对于点类型node1
,一次添加了两个字段:field1
,字符串类型,可选,默认值是 null
; field2
,int64
类型,必选,默认值是0.
CALL db.alterLabelAddFields('vertex', 'node1', ['field1', string, null ,true], ['field2', int64, 0, false])
点类型删除字段
该操作会同步变更所有该类型点的属性数据,数据量大的时候,有时间消耗。
如下例子,对于点类型node1
,一次删除了两个字段: field1
和 field2
。
CALL db.alterLabelDelFields('vertex', 'node1', ['field1', 'field2'])