针对 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 图数据库的关系样式查询的主要内容,如果未能解决你的问题,请参考以下文章