主要内容

社区中同事的添加和查询组

这个示例展示了如何将一组同事(存储为有向图)添加到社会社区中的一组朋友(存储为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、用户名、密码);

检查消息属性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 [1×1 struct] [1x1 database.neo4j.http.]Neo4jRelation] 24 31 'works with' 33 [1×1 struct] [1x1 database.neo4j.http.Neo4jRelation]

关系是一个包含以下变量的表:

  • 开始节点标识符

  • 关系类型

  • 结束节点标识符

  • 关系数据

  • Neo4jRelation对象

在现有的图表中连接一组同事和朋友

搜索带有节点标签的节点和属性键的名字设置为值User7User8通过使用Neo4j数据库连接。

nlabel =“人”;user7 = searchNode (neo4jconn nlabel,“PropertyKey”“名字”...“PropertyValue”“User7”);user8 = searchNode (neo4jconn nlabel,“PropertyKey”“名字”...“PropertyValue”“User8”);

添加节点之间的关系User7User8把同事群和朋友群联系起来。

relationtype =“知道”;关系= createRelation (neo4jconn user7、user8 relationtype);

在Neo4j数据库中显示结果图。

在Neo4j数据库上执行Cypher查询

创建一个Cypher查询来查找与人一起工作的人User7知道。显示那些人的名字。

查询= [匹配(:人{名称:“User7”})——(知道):- >(人)-[:”与“]”...”——> (potentialContact:人)返回potentialContact.name”];结果= executeCypher (neo4jconn、查询)
结果=3×1表potentialContact_name  _____________________ ' User11“User10 ' ' User9 '

User9User10,User11所有人都和这样的人一起工作User7知道。User7知道User8,他与User9User10,User11

关闭数据库连接

关上(neo4jconn)

另请参阅

|

相关的话题

外部网站