Neo4j是一个高度可扩展的原生图数据库管理系统,它具有成熟数据库的所有特性。在Neo4j中,数据被表示为节点(Node)、关系(Relationship)、属性(Property)和标签(Label)。要查询Neo4j中的实体和关系,你可以使用Cypher查询语言。
以下是一些基本的查询示例:
- 查询所有节点:
MATCH (n) RETURN n
- 查询具有特定标签的节点:
MATCH (n:Person) RETURN n
- 查询具有特定属性和标签的节点:
MATCH (n:Person {name: "John", age: 30}) RETURN n
- 查询两个节点之间的关系:
MATCH (a)-[r]->(b) WHERE a.name = "John" AND b.name = "Jane" RETURN r
- 查询具有特定关系的节点:
MATCH (a)-[r]->(b) WHERE r.type = "KNOWS" RETURN a, r, b
- 查询节点的邻居节点:
MATCH (a)-[r]->(b) RETURN b
- 查询节点的祖先节点:
MATCH (a)-[:ANCESTOR*]->(b) WHERE a.name = "John" RETURN b
- 查询节点的后代节点:
MATCH (a)<-[:ANCESTOR*](b) WHERE a.name = "John" RETURN b
- 查询两个节点之间的最短路径:
MATCH (a)-[r]->(b) WHERE a.name = "John" AND b.name = "Jane" RETURN shortestPath(r)
- 查询节点的所有路径:
MATCH p=(a)-[r*]->(b) WHERE a.name = "John" AND b.name = "Jane" RETURN p
这些查询示例涵盖了Neo4j中实体和关系的基本查询。你可以根据自己的需求进行组合和调整。要了解更多关于Cypher查询语言的详细信息,请参考官方文档:https://neo4j.com/docs/cypher-manual/current/