py2neo查询关系
时间: 2023-12-24 21:03:11 浏览: 197
你可以使用py2neo中的`Graph`类和`NodeMatcher`类来查询关系。以下是一个简单的例子:
```python
from py2neo import Graph, NodeMatcher
# 连接到Neo4j数据库
graph = Graph("bolt://localhost:7687", auth=("username", "password"))
# 创建NodeMatcher对象
matcher = NodeMatcher(graph)
# 查询所有的关系
results = graph.run("MATCH ()-[r]->() RETURN r")
# 输出结果
for r in results:
print(r)
```
这个例子中,我们使用了`Graph`类来连接到Neo4j数据库,然后创建了一个`NodeMatcher`对象。我们可以使用`graph.run`方法来运行查询语句,然后使用`for`循环来遍历结果。在这个例子中,我们查询了所有的关系,并输出了它们。
相关问题
py2neo 创建关系_py2neo:使用批处理创建与属性的关系
要使用py2neo创建带有属性的关系,可以使用py2neo.Graph.create()方法。可以在方法中使用批处理模式,以一次性创建多个关系。
下面是一个示例代码,用于创建两个节点之间的关系,其中包含一个名为"weight"的属性:
```
from py2neo import Graph, Node, Relationship
# 连接到图形数据库
graph = Graph()
# 创建两个节点
node1 = Node("Person", name="Alice")
node2 = Node("Person", name="Bob")
# 创建一个关系并设置属性
relation = Relationship(node1, "FRIENDS_WITH", node2, weight=0.6)
# 使用批处理模式创建关系
graph.create(relation)
```
在上面的示例中,我们首先创建两个节点,然后创建一个包含属性的关系,并最终使用`graph.create()`方法将此关系添加到数据库中。请注意,我们可以使用`Relationship()`构造函数来创建关系,并在其中指定节点和属性。
如果您需要一次创建多个关系,可以使用以下代码:
```
from py2neo import Graph, Node, Relationship
# 连接到图形数据库
graph = Graph()
# 创建两个节点
node1 = Node("Person", name="Alice")
node2 = Node("Person", name="Bob")
# 创建关系对象并添加到列表中
relationships = []
relationships.append(Relationship(node1, "FRIENDS_WITH", node2, weight=0.6))
relationships.append(Relationship(node1, "WORKS_WITH", node2, weight=0.8))
# 使用批处理模式创建多个关系
graph.create(*relationships)
```
在上面的示例中,我们首先创建两个节点,然后创建两个带有属性的关系,并将它们添加到列表中。最后,我们使用`graph.create()`方法和"*"运算符将所有关系添加到数据库中。
py2neo删除关系
在Py2Neo库中,如果你想要删除Neo4j数据库中的关系,你可以使用` Relationship.remove()` 方法。这个方法用于从图数据库中移除指定的关系。下面是一个基本示例:
```python
from neo4j import GraphDatabase
# 假设你已经有了driver,uri和username等连接信息
with driver.session() as session:
# 假设你想删除名为"r"的关系,它连接着node_1和node_2
node_1 = session.read_transaction(txn=lambda tx: tx.run("MATCH (a) WHERE id(a) = $id RETURN a", id=node_1_id).single().get('a'))
node_2 = session.read_transaction(txn=lambda tx: tx.run("MATCH (b) WHERE id(b) = $id RETURN b", id=node_2_id).single().get('b'))
rel_to_remove = session.read_transaction(txn=lambda tx: tx.run("MATCH ()-[r]-() WHERE id(r) = $rel_id DELETE r", rel_id=relation_id).single())
```
在这个例子中,你需要替换`node_1_id`、`node_2_id`和`relation_id`为实际的关系ID。注意,`Relationship.remove()`会直接从图中删除该关系,如果需要谨慎操作,建议先备份数据。
阅读全文