py2neo 查询语句

这篇具有很好参考价值的文章主要介绍了py2neo 查询语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

py2neo 查询语句

NodeMatcher

>>> from py2neo import Graph
>>> from py2neo.matching import *
>>> g = Graph()
>>> nodes = NodeMatcher(g)
>>> keanu = nodes.match("Person", name="Keanu Reeves").first()
>>> keanu
Node('Person', born=1964, name='Keanu Reeves')

可以对查询结果进行进一步查询:

按ID查找节点

>>> matches.get(1234)
Node('Person', name='Alice')

对查找结果排序

match.order_by("_.name", "max(_.a, _.b)")

根据where语句查询

>>> nodes.match("Person").where("_.born % 10 = 0").all()
[Node('Person', born=1950, name='Ed Harris'),
 Node('Person', born=1960, name='Hugo Weaving'),
 Node('Person', born=1940, name='Al Pacino'),
 Node('Person', born=1970, name='Jay Mohr'),
 Node('Person', born=1970, name='River Phoenix'),
 Node('Person', born=1940, name='James L. Brooks'),
 Node('Person', born=1960, name='Annabella Sciorra'),
 Node('Person', born=1970, name='Ethan Hawke'),
 Node('Person', born=1940, name='James Cromwell'),
 Node('Person', born=1950, name='John Patrick Stanley'),
 Node('Person', born=1970, name='Brooke Langton'),
 Node('Person', born=1930, name='Gene Hackman'),
 Node('Person', born=1950, name='Howard Deutch'),
 Node('Person', born=1930, name='Richard Harris'),
 Node('Person', born=1930, name='Clint Eastwood'),
 Node('Person', born=1940, name='John Hurt'),
 Node('Person', born=1960, name='John Goodman'),
 Node('Person', born=1980, name='Christina Ricci'),
 Node('Person', born=1960, name='Oliver Platt')]

match.where("_.name =~ 'J.*'")

=~是不等于的意思,.是任意字符,*是前面的字符大于等于0个。整体意思就是查到节点中name属性不以J开头的节点文章来源地址https://www.toymoban.com/news/detail-712685.html

判断是否为空

IS_NULL()

查询以…开头的节点

>>> nodes.match("Person", name=STARTS_WITH("Kevin")).all()
[Node('Person', born=1958, name='Kevin Bacon'),
 Node('Person', born=1957, name='Kevin Pollak')]

查询以…结尾的节点

>>> nodes.match("Person", name=ENDS_WITH("Wachowski")).all()
[Node('Person', born=1967, name='Andy Wachowski'),
 Node('Person', born=1965, name='Lana Wachowski')]

查询包含某个字符串的节点

>>> nodes.match("Person", name=CONTAINS("eve")).all()
[Node('Person', born=1967, name='Steve Zahn'),
 Node('Person', born=1964, name='Keanu Reeves')]

按正则表达式查找

>>> nodes.match("Person", name=LIKE("Ke.*n")).all()
[Node('Person', born=1958, name='Kevin Bacon'),
 Node('Person', born=1962, name='Kelly Preston')]

包含在列表当中

>>> nodes.match("Person", born=IN([1962, 1964, 1966])).all()
[Node('Person', born=1964, name='Keanu Reeves'),
 Node('Person', born=1962, name='Tom Cruise'),
 Node('Person', born=1962, name='Demi Moore'),
 Node('Person', born=1966, name='Kiefer Sutherland'),
 Node('Person', born=1962, name='Anthony Edwards'),
 Node('Person', born=1962, name='Kelly Preston'),
 Node('Person', born=1966, name='John Cusack'),
 Node('Person', born=1962, name="Rosie O'Donnell"),
 Node('Person', born=1966, name='Halle Berry'),
 Node('Person', born=1966, name='Matthew Fox')]

与查找

>>> nodes.match("Person", born=AND(GE(1964), LE(1966))).all()
[Node('Person', born=1965, name='John C. Reilly'),
 Node('Person', born=1964, name='Keanu Reeves'),
 Node('Person', born=1965, name='Lana Wachowski'),
 Node('Person', born=1966, name='Kiefer Sutherland'),
 Node('Person', born=1966, name='John Cusack'),
 Node('Person', born=1966, name='Halle Berry'),
 Node('Person', born=1965, name='Tom Tykwer'),
 Node('Person', born=1966, name='Matthew Fox')]

或查找

>>> nodes.match("Person", name=OR(STARTS_WITH("H"), ENDS_WITH("h"))).all()
[Node('Person', born=1960, name='Hugo Weaving'),
 Node('Person', born=1943, name='J.T. Walsh'),
 Node('Person', born=1941, name='Jim Cash'),
 Node('Person', born=1963, name='Helen Hunt'),
 Node('Person', born=1950, name='Howard Deutch'),
 Node('Person', born=1966, name='Halle Berry'),
 Node('Person', born=1985, name='Emile Hirsch')]

异或查找

>>> nodes.match("Person", name=XOR(STARTS_WITH("H"), ENDS_WITH("h"))).all()
[Node('Person', born=1960, name='Hugo Weaving'),
 Node('Person', born=1943, name='J.T. Walsh'),
 Node('Person', born=1941, name='Jim Cash'),
 Node('Person', born=1963, name='Helen Hunt'),
 Node('Person', born=1966, name='Halle Berry'),
 Node('Person', born=1985, name='Emile Hirsch')]

限制查找的数量

>>> nodes.match("Person").where(name=LIKE("K.*")).order_by("_.name").limit(3).all()
[Node('Person', born=1964, name='Keanu Reeves'),
 Node('Person', born=1957, name='Kelly McGillis'),
 Node('Person', born=1962, name='Kelly Preston')]

到了这里,关于py2neo 查询语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于5.x版本的Neo4j与py2neo的访问技巧

    先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里,首推的http连接方法可能并不是最好的,应该用 bolt 方法可能更好。 对于大多数使用  py2neo  与 Neo4j 数据库进行交互的应用程序来说,建议使用 Bolt 协议(即第二个指令)。确保您的 Neo4j 服务器配置

    2024年04月26日
    浏览(43)
  • 【知识图谱】python连接neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    源代码如下 报错信息: 从graph.run这里报错,报出一个JSon相关的错误,百思不得其解。 解决方法: 需要加上一个name=“neo4j”,才能成功,如下 或者这样 完整demo

    2024年02月11日
    浏览(39)
  • 知识图谱基本工具Neo4j使用笔记 三 :Py2neo 基本增删改查使用

    每天掌握一点,创建 --修改–查询–删除 知识图谱基本工具Neo4j使用笔记 一 :入门基本操作 Python操作api py2neo 是一个Python库,用于连接和操作Neo4j图数据库。它提供了一组API,可让用户在Python中轻松地 创建 、 查询 和 操纵图形数据 。 py2neo允许用户使用 Python 代码 创建节点

    2024年02月11日
    浏览(42)
  • SySeVR环境配置:joern-0.3.1、Neo4j-2.1.5、py2neo2.0

    最近希望在基于图神经网络的漏洞检测上有所推进,准备复现文章SySeVR: A Framework for Using Deep Learningto Detect Software Vulnerabilities开源代码,基本环境配置是python库环境以及joern-0.3.1、Neo4j-2.1.5环境的配置,环境具体要求如下 假期的时候就已经完成过joern的配置,光是安装就卡了我

    2023年04月08日
    浏览(27)
  • Py之py2neo:py2neo的简介、安装、使用方法之详细攻略

    CV之DL之YOLOv8:YOLOv8的简介、安装和使用方法、案例应用之详细攻略 目录 YOLOv8的简介 1、Yolov8的概述 2、YOLOv8对比前身YOLOv5 YOLOv8的安装和使用方法 1、安装和使用 T1、采用yolov8安装和使用 第1步,安装YOLOv8 第2步,使用YOLOv8 T1、采用CLI T2、采用Python T2、采用ultralytics安装和使用

    2024年02月13日
    浏览(35)
  • Python中py2neo库的基本使用方法

    因为需要将处理好的csv文件用neo4j存储,因此想到使用python将数据导入neo4j,就需要用到py2neo库。 安装py2neo库: 首先是建立连接: 注意:这里传入用户名和密码使用的auth元组形式 Node和Relationship可以定义对应的实例,Node第一个参数是label, 再利用graph.create()创建。打开neo4j可以

    2024年02月16日
    浏览(36)
  • Neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON 解决方案

    环境: neo4j-5.1.0、py2neo-2021.2.3、Neo4j Desktop-1.5.2、python3.9.13 1、创建neo4j链接,对数据库进行增删改的时候报错。 报错代码: 奇怪的是,同样的代码、数据,用在python3.8.3的环境中没有报错,所以首先查看两个版本python的区别,发现json的__init__中有一些小区别,关于json解析的,

    2024年02月12日
    浏览(33)
  • Neo4j企业版报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    环境为neo4j-enterprise-5.1.0、py2neo、Neo4j Desktop-1.5.2 根据堆栈追踪,我们发现self.graph.name为空,而self.graph为Graph(\\\"http://localhost:7474/ \\\") 所以我们自己修改源码 打开python的包的安装位置: X:*****PythonPython37Libsite-packagespy2neodatabase.py 原来的代码: (990行左右) 更改后的代码:

    2024年02月12日
    浏览(49)
  • 知识图谱之py2neo

    介绍 Py2neo是一个客户端库和工具包,用于从Python应用程序和命令行使用Neo4j(Neo4j Graph Data Platform | Graph Database Management System)。该库同时支持 Bolt 和 HTTP,并提供高级 API、OGM、管理工具、交互式控制台、Pygments 的 Cypher 词法分析器以及许多其他功能。 安装 注:Neo4j也需要安装

    2024年02月11日
    浏览(30)
  • py2neo创建知识图谱合并结点

    上篇文章简单的构造了一个知识图谱,但是其中包含了许多重复的结点,看起来也非常乱,不清晰。科学上网之后,发现了一个 apoc 的工具,关于 apoc 是什么如何安装,这篇文章有很好的介绍 Neo4j:入门基础(三)之APOC插件_Dawn_www的博客-CSDN博客_apoc neo4j,应下载与neo4j相应版

    2023年04月12日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包