Neo4j数据库节点与关系操作指南
1. 引言
在处理图数据库时,Neo4j是一个广泛使用的工具。本文将详细介绍Neo4j数据库中节点标签、节点属性和关系属性的操作,包括移除节点标签、设置节点属性、移除节点属性以及设置关系属性的方法和示例。
2. 移除节点标签(removeNodeLabel)
2.1 语法
removeNodeLabel(neo4jconn,node,labels)
nodeinfo = removeNodeLabel(neo4jconn,node,labels)
2.2 描述
removeNodeLabel
函数用于使用Neo4j数据库连接从一个或多个节点中移除节点标签。若使用
nodeinfo = removeNodeLabel(neo4jconn,node,labels)
,则会返回更新后的节点信息,对于单个节点返回
Neo4jNode
对象,对于多个节点返回表格。
2.3 输入参数
参数
描述
示例
neo4jconn
Neo4j数据库连接,由
neo4j
函数创建的
Neo4jConnect
对象
node
Neo4j数据库中的节点,可以是
Neo4jNode
对象、
Neo4jNode
对象数组、数值标量或数值向量。单个节点用
Neo4jNode
对象或数值标量,多个节点用
Neo4jNode
对象数组或数值向量,数值需为Neo4j数据库节点标识符
15,[2,3,4]
labels
节点标签,可以是字符向量、字符向量的元胞数组、字符串标量或字符串数组。单个标签用字符向量或字符串标量,多个标签用字符向量的元胞数组或字符串数组
“Person”
2.4 输出参数
参数
描述
nodeinfo
Neo4j数据库中的节点信息,单个节点返回
Neo4jNode
对象,多个节点返回表格。表格包含
NodeLabels
、
NodeData
和
NodeObject
变量,行名为Neo4j节点标识符
2.5 示例
2.5.1 移除单个节点标签
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 检索第一个节点
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(1);
% 添加一个节点标签
labels = "Analyst";
addNodeLabel(neo4jconn,node,labels)
% 显示更新后的节点信息
nodeinfo = searchNode(neo4jconn,labels);
node.NodeLabels
% 移除标签
removeNodeLabel(neo4jconn,node,labels)
% 再次查找节点并显示标签
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
nodeinfo.NodeLabels(1)
% 关闭数据库连接
close(neo4jconn)
2.5.2 移除多个节点标签并返回输出
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 查找带有标签Person的节点
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
% 添加多个节点标签
labels = ["Analyst" "Scientist"];
node = nodeinfo.NodeObject;
addNodeLabel(neo4jconn,node,labels)
% 显示更新后的节点信息
nlabel = "Analyst";
nodeinfo = searchNode(neo4jconn,nlabel);
nodeinfo.NodeLabels
% 移除标签并显示更新后的节点信息
nodeinfo = removeNodeLabel(neo4jconn,node,labels);
nodeinfo.NodeLabels
% 关闭数据库连接
close(neo4jconn)
2.6 操作流程图
graph TD;
A[创建数据库连接] --> B[检查连接状态];
B --> C{连接是否成功};
C -- 是 --> D[查找节点];
C -- 否 --> E[处理连接失败];
D --> F[添加节点标签];
F --> G[显示节点信息];
G --> H[移除节点标签];
H --> I[再次显示节点信息];
I --> J[关闭数据库连接];
3. 设置节点属性(setNodeProperty)
3.1 语法
setNodeProperty(neo4jconn,node,properties)
nodeinfo = setNodeProperty(neo4jconn,node,properties)
3.2 描述
setNodeProperty
函数用于使用Neo4j数据库连接为一个或多个节点设置属性。若使用
nodeinfo = setNodeProperty(neo4jconn,node,properties)
,则会返回更新后的节点信息,单个节点返回
Neo4jNode
对象,多个节点返回表格。
3.3 输入参数
参数
描述
示例
neo4jconn
Neo4j数据库连接,由
neo4j
函数创建的
Neo4jConnect
对象
node
Neo4j数据库中的节点,可以是
Neo4jNode
对象、
Neo4jNode
对象数组、数值标量或数值向量。单个节点用
Neo4jNode
对象或数值标量,多个节点用
Neo4jNode
对象数组或数值向量,数值需为Neo4j数据库节点标识符
15,[2,3,4]
properties
节点属性,可以是结构体、结构体数组或表格。若属性不存在则添加新属性,若存在则设置新值。结构体或表格的维度需与要更新的节点数量相同,也可用标量结构体为多个节点设置相同值
3.4 输出参数
参数
描述
nodeinfo
Neo4j数据库中的节点信息,单个节点返回
Neo4jNode
对象,多个节点返回表格。表格包含
NodeLabels
、
NodeData
和
NodeObject
变量,行名为Neo4j节点标识符
3.5 示例
3.5.1 设置单个节点属性
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 检索第一个节点
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(1);
% 设置节点属性
properties.Title = "Analyst";
setNodeProperty(neo4jconn,node,properties)
% 显示更新后的节点信息
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(1);
node.NodeData
% 关闭数据库连接
close(neo4jconn)
3.5.2 设置多个节点属性并返回输出
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 查找带有标签Person的节点并选择前两个
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
nodes = nodeinfo.NodeObject;
firstnodes = nodes(1:2);
% 设置多个节点属性
properties(1).Title = "Analyst";
properties(2).Title = "Engineer";
nodeinfo = setNodeProperty(neo4jconn,firstnodes,properties);
% 显示更新后的节点信息
nodeinfo.NodeData{1:2}
% 关闭数据库连接
close(neo4jconn)
3.6 操作流程图
graph TD;
A[创建数据库连接] --> B[检查连接状态];
B --> C{连接是否成功};
C -- 是 --> D[查找节点];
C -- 否 --> E[处理连接失败];
D --> F[设置节点属性];
F --> G[显示节点信息];
G --> H[关闭数据库连接];
4. 移除节点属性(removeNodeProperty)
4.1 语法
removeNodeProperty(neo4jconn,node,propertyNames)
nodeinfo = removeNodeProperty(neo4jconn,node,propertyNames)
4.2 描述
removeNodeProperty
函数用于使用Neo4j数据库连接从一个或多个节点中移除属性。若使用
nodeinfo = removeNodeProperty(neo4jconn,node,propertyNames)
,则会返回更新后的节点信息,单个节点返回
Neo4jNode
对象,多个节点返回表格。
4.3 输入参数
参数
描述
示例
neo4jconn
Neo4j数据库连接,由
neo4j
函数创建的
Neo4jConnect
对象
node
Neo4j数据库中的节点,可以是
Neo4jNode
对象、
Neo4jNode
对象数组、数值标量或数值向量。单个节点用
Neo4jNode
对象或数值标量,多个节点用
Neo4jNode
对象数组或数值向量,数值需为Neo4j数据库节点标识符
15,[2,3,4]
propertyNames
属性名称,可以是字符向量、字符向量的元胞数组、字符串标量或字符串数组。单个属性用字符向量或字符串标量,多个属性用字符向量的元胞数组或字符串数组
“Analyst”,[“Analyst” “Clerk”]
4.4 输出参数
参数
描述
nodeinfo
Neo4j数据库中的节点信息,单个节点返回
Neo4jNode
对象,多个节点返回表格。表格包含
NodeLabels
、
NodeData
和
NodeObject
变量,行名为Neo4j节点标识符
4.5 示例
4.5.1 移除单个节点属性
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 检索第一个节点
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(1);
% 设置节点属性
properties.Title = "Analyst";
setNodeProperty(neo4jconn,node,properties)
% 显示更新后的节点信息
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(1);
node.NodeData
% 移除节点属性
propertyNames = "Title";
removeNodeProperty(neo4jconn,node,propertyNames)
% 显示更新后的节点信息
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(1);
node.NodeData
% 关闭数据库连接
close(neo4jconn)
4.5.2 移除多个节点属性并返回输出
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 查找带有标签Person的节点
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
nodes = nodeinfo.NodeObject;
% 设置多个节点属性
properties.Title = "Analyst";
properties.Department = "Sales";
nodeinfo = setNodeProperty(neo4jconn,nodes,properties);
% 显示更新后的节点信息
nodeinfo.NodeData{1:3}
% 移除节点属性
propertyNames = ["Title" "Department"];
nodeinfo = removeNodeProperty(neo4jconn,nodes,propertyNames);
% 显示更新后的节点信息
nodeinfo.NodeData{1:3}
% 关闭数据库连接
close(neo4jconn)
4.6 操作流程图
graph TD;
A[创建数据库连接] --> B[检查连接状态];
B --> C{连接是否成功};
C -- 是 --> D[查找节点];
C -- 否 --> E[处理连接失败];
D --> F[设置节点属性];
F --> G[显示节点信息];
G --> H[移除节点属性];
H --> I[再次显示节点信息];
I --> J[关闭数据库连接];
5. 设置关系属性(setRelationProperty)
5.1 语法
setRelationProperty(neo4jconn,relation,properties)
relationinfo = setRelationProperty(neo4jconn,relation,properties)
5.2 描述
setRelationProperty
函数用于使用Neo4j数据库连接为一个或多个关系设置属性。若使用
relationinfo = setRelationProperty(neo4jconn,relation,properties)
,则会返回更新后的关系信息,单个关系返回
Neo4jRelation
对象,多个关系返回表格。
5.3 输入参数
参数
描述
示例
neo4jconn
Neo4j数据库连接,由
neo4j
函数创建的
Neo4jConnect
对象
relation
Neo4j数据库中的关系,可以是
Neo4jRelation
对象、
Neo4jRelation
对象数组、数值标量或数值向量。单个关系用
Neo4jRelation
对象或数值标量(关系标识符),多个关系用
Neo4jRelation
对象数组或数值向量(关系标识符数组)
15,[15,16,17]
properties
关系属性,可以是结构体、结构体数组或表格。若属性不存在则添加新属性,若存在则设置新值。结构体或表格的维度需与要更新的关系数量相同,也可用标量结构体为多个关系设置相同值
5.4 输出参数
参数
描述
relationinfo
Neo4j数据库中的关系信息,单个关系返回
Neo4jRelation
对象,多个关系返回表格。表格包含
StartNodeID
、
RelationType
、
EndNodeID
、
RelationData
和
RelationObject
变量,行名为Neo4j关系标识符
5.5 示例
5.5.1 设置单个关系属性
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 检索第二个节点
nlabel = "Person";
nodeinfo = searchNode(neo4jconn,nlabel);
node = nodeinfo.NodeObject(2);
% 查找节点的外向关系
direction = "out";
relinfo = searchRelation(neo4jconn,node,direction);
relation = relinfo.Relations.RelationObject;
% 设置关系属性
properties.StartDate = "01/01/2018";
setRelationProperty(neo4jconn,relation,properties)
% 显示更新后的关系信息
relinfo = searchRelation(neo4jconn,node,direction);
relinfo.Relations.RelationData{1}
% 关闭数据库连接
close(neo4jconn)
5.5.2 设置多个关系属性并返回输出
% 创建Neo4j数据库连接
url = 'http://localhost:7474/db/data';
username = 'neo4j';
password = 'matlab';
neo4jconn = neo4j(url,username,password);
% 检查连接是否成功
neo4jconn.Message
% 查找节点标识符为3的节点信息
nodeid = 3;
nodeinfo = searchNodeByID(neo4jconn,nodeid);
% 查找节点的外向关系
direction = "out";
relinfo = searchRelation(neo4jconn,nodeinfo,direction);
relation = relinfo.Relations.RelationObject;
% 设置多个关系属性
properties(1).MeetLocation = "Chicago";
properties(2).MeetLocation = "Miami";
relationinfo = setRelationProperty(neo4jconn,relation,properties);
% 显示更新后的关系信息
relationinfo.RelationData{1:2}
% 关闭数据库连接
close(neo4jconn)
5.6 操作流程图
graph TD;
A[创建数据库连接] --> B[检查连接状态];
B --> C{连接是否成功};
C -- 是 --> D[查找节点];
C -- 否 --> E[处理连接失败];
D --> F[查找关系];
F --> G[设置关系属性];
G --> H[显示关系信息];
H --> I[关闭数据库连接];
6. 总结
本文详细介绍了Neo4j数据库中节点标签、节点属性和关系属性的操作方法,包括移除节点标签、设置节点属性、移除节点属性以及设置关系属性。通过具体的示例代码和操作流程图,展示了如何使用这些函数进行数据库操作。这些操作对于管理和维护Neo4j图数据库非常有用,可以帮助用户更好地组织和利用图数据。在实际应用中,用户可以根据具体需求选择合适的操作函数,灵活地对数据库进行修改和更新。