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查询语言的详细信息,请参考官方文档: