# test_neo4j.py from util.neo4j_utils import neo4j_client # 插入一个标签为 "Disease" 的节点,属性包括 name 和 icd10 # node_id = neo4j_client.insert_node(label="Disease", properties={"name": "糖尿病", "icd10": "E11.9"}) # print(f"创建的新节点 ID: {node_id}") # # # 删除所有标签为 "Disease" 的节点及其关系 # neo4j_client.delete_all_nodes_by_label(label="Disease") # print("已删除所有 'Disease' 标签的节点") # # 删除所有属性 name 为 "糖尿病" 的 Disease 节点 # neo4j_client.delete_nodes_by_condition(label="Disease", conditions={"name": "糖尿病", "icd10": "E11.9"}) # print("已删除符合条件的节点") # # # 查询所有标签为 "Disease" 的节点 # nodes = neo4j_client.find_all_nodes(label="Disease") # for node in nodes: # print(node) # # # 查找所有 name 为 "糖尿病" 的 Disease 节点 # nodes = neo4j_client.find_nodes_with_element_id(label="Disease", properties={"name": "糖尿病"}) # for node in nodes: # print(node) # # # 更新 name 为 "糖尿病" 的 Disease 节点的 icd10 属性 # neo4j_client.update_node_by_properties(label="Disease", where={"name": "糖尿病"}, updates={"icd10": "E11.8"}) # print("节点已更新") # # 创建一个从 "Disease" 节点到 "Drug" 节点的关系,类型为 TREATS # neo4j_client.create_relationship( # source_label="Disease", # source_props={"name": "糖尿病"}, # target_label="Drug", # target_props={"name": "二甲双胍"}, # rel_type="TREATS" # ) # # # 查询所有类型为 "TREATS" 的关系 # relationships = neo4j_client.find_all_relationships(rel_type="TREATS") # for relationship in relationships: # print(relationship) # # # 查询所有从 "Disease" 到 "Drug" 的 "TREATS" 类型关系 # relationships = neo4j_client.find_relationships_by_condition( # source_label="Disease", # source_props={"name": "糖尿病"}, # target_label="Drug", # target_props={"name": "二甲双胍"}, # rel_type="TREATS" # ) # for relationship in relationships: # print(relationship) # # 删除所有 "Disease" 节点的关系 # neo4j_client.delete_all_relationships_by_node_label(node_label="Disease") # print("已删除所有 'Disease' 节点的关系") # # 删除所有 name 为 "糖尿病" 的 Disease 节点的关系 # neo4j_client.delete_all_relationships_by_node_props(label="Disease", properties={"name": "糖尿病"}) # print("已删除符合条件的节点的所有关系") # # 删除所有从 "Disease" 到 "Drug" 的 "TREATS" 类型关系 # neo4j_client.delete_relationships_advanced( # source_label="Disease", # source_props={"name": "糖尿病"}, # target_label="Drug", # target_props={"name": "二甲双胍"}, # rel_type="TREATS" # ) # print("高级关系删除完成") # 更新从 "Disease" 到 "Drug" 的 "TREATS" 类型关系的某些属性 # neo4j_client.update_relationship( # source_label="Disease", # source_props={"name": "糖尿病"}, # target_label="Drug", # target_props={"name": "二甲双胍"}, # rel_type="TREATS", # new_rel_properties={"effectiveness": "high"} # ) # print("关系属性已更新") # neighbors = neo4j_client.find_neighbors_with_relationships( # node_label="Disease", # node_properties={"name": "糖尿病"}, # direction="both" # 或 "out"/"in" # ) # # for item in neighbors: # print(f"关系: {item['relationship']['type']}") # print(f"目标节点: {item['target']['label']} - {item['target']}") # print("---")