添加和查询社会邻居中的同事组
此示例演示如何将存储为有向图的一组同事添加到存储为Neo4j®数据库中的节点和关系的社会邻居中的一组朋友。然后,该示例展示了如何使用Cypher®查询语言查询数据库中的图形,该语言允许您创建自定义查询。
有关Neo4j的MATLAB®接口的详细信息,请参见Neo4j数据库接口的图形数据库工作流。
假设您在Neo4j数据库中存储了表示社会邻居的图形数据。这个数据库有7个节点和8个关系。每个节点只有一个唯一的属性键的名字
取值范围为User1
通过User7
。每个关系都有类型知道
。
本地机器承载带有端口号的Neo4j数据库7474
,用户名neo4j
,和密码matlab
。该图提供了数据库中数据的可视化表示。
连接到Neo4j数据库
创建一个Neo4j连接对象neo4jconn
使用URLhttp://localhost:7474/db/data
,用户名neo4j
,和密码matlab
。
url =“http://localhost: 7474 / db /数据”;用户名=“neo4j”;密码=matlab的;Neo4jconn = neo4j(url,用户名,密码);
检查消息
属性的Neo4j连接对象neo4jconn
。空白的消息
属性指示连接成功。
neo4jconn。消息
Ans = []
创建有向图
通过在MATLAB中创建有向图来定义一组四个同事。创建一个有向图
对象,该对象具有四个节点和三条边。
S = [1 1 1];T = [2 3 4];G =有向图(s,t);
为节点指定名称。
G.Nodes.name = {“User8”;“User9”;“User10”;“User11”};
绘制有向图以查看节点和边。
情节(G)
在Neo4j数据库中存储有向图
将有向图存储为Neo4j图。属性为结果Neo4j图中的所有节点指定两个标签GlobalNodeLabel
名称-值对参数。另外,还要指定类型适用于
的结果Neo4j图中的所有关系GlobalRelationType
名称-值对参数。
graphinfo = storeDigraph(neo4jconn,G,...“GlobalNodeLabel”, {“同事”,“人”},...“GlobalRelationType”,“与”);
显示图中第一个节点的节点标签。
graphinfo.Nodes.NodeLabels {1}
ans =2×1单元格数组{“人员”}{“同事”}
结果是一个字符向量的单元格数组。每个字符向量都是第一个节点的节点标签。
在图中显示关系。
graphinfo。关系
ans =3×5表StartNodeID RelationType EndNodeID RelationData RelationObject ___________ ____________ _________ ____________ _______________________________________ 20 31“适用于”8[1×1 struct] [1 x1 database.neo4j.http。Neo4jRelation] 23 31 '工作与' 32 [1×1 struct] [1x1 database.neo4j.http。Neo4jRelation] 24 31 'works with' 33 [1×1 struct] [1x1 database.neo4j.http.Neo4jRelation]
关系
是一个包含以下变量的表:
开始节点标识符
关系类型
结束节点标识符
关系数据
Neo4jRelation
对象
将同事组连接到现有图中的朋友
搜索带有节点标签的节点人
属性键的名字
设置值User7
而且User8
通过使用Neo4j数据库连接。
nlabel =“人”;user7 = searchNode(neo4jconn,nlabel,“PropertyKey”,“名字”,...“PropertyValue”,“User7”);user8 = searchNode(neo4jconn,nlabel,“PropertyKey”,“名字”,...“PropertyValue”,“User8”);
添加节点之间的关系User7
而且User8
将同事组连接到朋友组。
relationtype =“知道”;relation = createRelation(neo4jconn,user7,user8,relationtype);
在Neo4j数据库中显示结果图。
在Neo4j数据库上执行Cypher查询
创建Cypher查询以查找与他人一起工作的人员User7
知道。显示这些人的名字。
查询= [匹配(:人{名称:“User7”})——(知道):- >(人)-[:”与“]”...'->(潜在联系人:Person)返回潜在联系人。name'];results = executeCypher(neo4jconn,query)
结果=3×1表potentialContact_name _____________________ ' User11“User10 ' ' User9 '
User9
,User10
,User11
都和这样的人一起工作User7
知道。User7
知道User8
,他与User9
,User10
,User11
。
关闭数据库连接
关上(neo4jconn)