当前位置:   article > 正文

通过pycharm完成对neo4j数据库的连接和使用(二)

通过pycharm完成对neo4j数据库的连接和使用(二)

书接上文,https://blog.csdn.net/junruitian/article/details/85834151

最近在使用非关系型数据库neo4j

由于我的server版本是3.5.0,一部分attribute不再使用

所以在这里做一个新的总结:

这里推荐python neo4j的官方文档:https://neo4j.com/docs/operations-manual/current/

非关系型数据库的存储节点通常包括三个部分(label,property_key,property_value)

1.查找对应节点:

  1. matcher = NodeMatcher(graph)
  2. node1 = matcher.match('Actor', name='布利特·卡迪雍').first()
  3. #print(node1)
  4. #(_224:Person {born:1964,name:"Keanu Reeves"})

最后一行为返回结果,这个是通过matcher的方式来进行匹配,同时在name后面依然可以添加其他条件和属性,如(某个)property_key:XXX(property_value)

2.直接也是最简单的方式(推荐),通过数据库语言进行寻找,不需要考虑python语法

  1. list1 = graph.run("MATCH (n:Actor) RETURN n LIMIT 25").data()
  2. # graph查询
  3. # graph.run("MATCH (n:leafCategory) RETURN n LIMIT 25").data() # list型
  4. # graph.run("MATCH (n:leafCategory) RETURN n LIMIT 25").to_data_frame() # dataframe型
  5. # graph.run("MATCH (n:leafCategory) RETURN n LIMIT 25").to_table() # table

这样直接可以得到对应的结果,相应的使用也很简单只要直接替换掉run里面的字符串就可以了。

3.找某个节点相邻的点:

  1. for word in content:
  2. result_list = graph.run("MATCH p=(na:Movie)-[r:HAS_ACTOR]->(nb:Actor) where nb.name='甘国亮' RETURN na").data()
  3. #str_symptom = .replace('u\'', '\'')
  4. result_list1=str(result_list).encode('utf-8').decode('unicode_escape')
  5. print(result_list1)

这一段包括(对于输出字符编码的处理),其中类似于sql语言,我们定义na,nb来指代和查找,无论是通过na来找nb还是nb来找na,当然其中的relationship也是可以return的

总结:个人认为run的使用是一种简化,只需要考虑输出结果就可以,对于return内容本身也没有限制,这一篇就到这里>.<

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/584500
推荐阅读
相关标签
  

闽ICP备14008679号