前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >py2neo 使用手册

py2neo 使用手册

作者头像
星辉
发布2021-12-06 13:16:15
1K0
发布2021-12-06 13:16:15
举报

文章目录

根据末端节点 ID 获取图关系

代码语言:javascript
复制
from py2neo import Graph

class Neo4jConnection:
    """Neo4j 连接类"""

    def __init__(self, host, user, password, port):
        self.graph = Graph(host=host, user=user,
                           password=password, port=port)
                           
    def get_relationship_by_end_node_id(self, end_node_id):
        """根据末端节点 ID 获取图关系

        :param end_node_id: 末端节点 ID
        :return: 图关系
        """

        end_node = self.graph.nodes.get(end_node_id)
        relationship = self.graph.match_one(nodes=(None, end_node), r_type=r_type)

        return relationship

OGM(对象-图映射)

创建一个节点/关系

代码语言:javascript
复制
from py2neo import Graph
from py2neo.ogm import GraphObject, Property

class Person(GraphObject):
    """节点对象"""

    field_1 = Property()
    field_2 = Property()
    field_3 = Property()

    transfer = RelatedTo('Person', 'TRANSFER')

def create_person_node(field_1, field_2, field_3):
    """创建 person 节点

    :param field_1: 属性 1
    :param field_2: 属性 2
    :param field_3: 属性 3
    :return:
    """

    graph = Graph(
        host=host,
        user=user,
        password=password,
        port=port
    )

    new_person_node = Person()
    new_person_node.field_1 = field_1
    new_person_node.field_2 = field_2
    new_person_node.field_3 = field_3

    graph.push(new_person_node)

def create_transfer_relationship(field_1, field_2, field_3):
    """创建 transfer 关系

    :param field_1: 属性 1
    :param field_2: 属性 2
    :param field_3: 属性 3
    :return:
    """

    graph = Graph(
        host=host,
        user=user,
        password=password,
        port=port
    )

    new_person_node = Person()
    new_person_node.field_1 = field_1
    new_person_node.field_2 = field_2
    new_person_node.field_3 = field_3
	
	new_person_node_1 = Person()
    new_person_node_1.field_1 = field_1
    new_person_node_1.field_2 = field_2
    new_person_node_1.field_3 = field_3
    new_person_node_1.transfer.add(
		new_person_node,
		field_1=field_1
	)
    graph.push(new_person_node_1)

图存储

代码语言:javascript
复制
from py2neo import Graph, Node

# 用子图创建的方式进行图存储
person_1 = Node('Person', name="Kangkang")
person_2 = Node('Person', name="Jane")
friend_relationship_1 = (person_1, "Friend", person_2)
person_3 = Node('Person', name="Maria")
friend_relationship_2 = (person_1, "Friend", person_3)
sub_graph = friend_relationship_1 | friend_relationship_2

graph_instance = Graph(host=host, port=port, user=user, password=password)
graph_instance.create(sub_graph)

# 合并图数据,merge 的最后一个参数需要是 unique key
person_4 = Node('Person', name="Michael")
friend_relationship_3 = (person_3, "Friend", person_4)
graph_instance.merge(friend_relationship_3, "Person", "name")

参考

neo4j︱与python结合的py2neo使用教程(四) Neo4j 简介及 Py2Neo 的用法 py2neo操作图数据库neo4j py2neo操作-官方样例

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 根据末端节点 ID 获取图关系
  • OGM(对象-图映射)
    • 创建一个节点/关系
    • 图存储
    • 参考
    相关产品与服务
    图数据库 KonisGraph
    图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档