针对 Neo4j 图数据库的关系样式查询

Posted

技术标签:

【中文标题】针对 Neo4j 图数据库的关系样式查询【英文标题】:Relational style query against Neo4j graph database 【发布时间】:2012-06-21 04:28:31 【问题描述】:

我是 neo4j 数据库的新手。我一直在寻找基于图形的数据库,发现 neo4j 很有趣。我想知道是否可以以关系数据库样式查询 neo4j 数据库。让我用一个例子来解释一下自己:

我有一个班级所有学生的图形数据库。节点包含学生信息,关系是“友谊”。每个节点都有学生姓名、班级和 cgpa 等属性。现在我想获取 cgpa > 4 的所有学生的列表。是否可以在 neo4j 中的单个查询中执行此操作?还是我需要找到所有节点然后对其进行操作?

如果有人能指出一些用于 Neo4j 查询的好资源,那也将非常有帮助。

【问题讨论】:

【参考方案1】:

我一直使用Neo4j docs。 如果您使用的是 Spring Data Neo4j,免费书籍Good Relationships 也可能会有所帮助。

有一种查询语言称为Cypher。文档中甚至有一些示例可能非常适合您的案例[1]:

start n=(2, 1) where n.age < 30 return n

这个从 id 2 和 1 的给定节点开始,如果它们的年龄属性低于 30,则返回它们。start n=(*) 将为每个节点执行此操作。您应该阅读整个规范。

根据您的工作以及您希望如何查找特定节点,您可以使用indices。

但是,您不应该像使用关系数据库那样使用图形数据库。对于您所描述的场景,它可能没问题,但尝试以您以后可以在遍历时使用它们的方式设计关系。它要快得多。

【讨论】:

以上是关于针对 Neo4j 图数据库的关系样式查询的主要内容,如果未能解决你的问题,请参考以下文章

如何将neo4j图数据库显示的图在自己的应用中展示

图数据库Neo4j在GIS系统的应用

Task05 Neo4j 图数据库查询

图数据库neo4j介绍(5)——常用函数

Neo4j图数据库从入门到精通

节点导入neo4j数据库后,节点显示的都是数字ID,怎么让他显示中文?