首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Gremlin:在单个gremlin查询中添加边和删除边

Gremlin是一个图形遍历语言,用于操作图数据库中的数据。它是TinkerPop图计算框架的一部分,可以对图数据库中的顶点和边进行查询、添加、更新和删除等操作。

在单个Gremlin查询中,可以通过添加边和删除边来修改图数据库的结构。

添加边: 在Gremlin中,使用addE命令来添加一条边。以下是添加边的基本语法:

代码语言:txt
复制
g.V().hasLabel('顶点标签').has('属性', '属性值').addE('边标签').to(g.V().hasLabel('顶点标签').has('属性', '属性值'))

解释如下:

  • g.V():选择所有顶点。
  • hasLabel('顶点标签'):选择具有指定标签的顶点。
  • has('属性', '属性值'):选择具有指定属性值的顶点。
  • addE('边标签'):添加一条指定标签的边。
  • to(g.V().hasLabel('顶点标签').has('属性', '属性值')):将边连接到具有指定标签和属性值的顶点。

示例: 假设我们有一个图数据库,其中包含了人员和公司的信息。要在人员"John"和公司"ABC"之间添加一条"worksFor"的边,可以使用以下命令:

代码语言:txt
复制
g.V().has('person', 'name', 'John').addE('worksFor').to(g.V().has('company', 'name', 'ABC'))

删除边: 在Gremlin中,使用drop()命令来删除一条边。以下是删除边的基本语法:

代码语言:txt
复制
g.V().hasLabel('顶点标签').has('属性', '属性值').outE('边标签').where(inV().hasLabel('顶点标签').has('属性', '属性值')).drop()

解释如下:

  • g.V():选择所有顶点。
  • hasLabel('顶点标签'):选择具有指定标签的顶点。
  • has('属性', '属性值'):选择具有指定属性值的顶点。
  • outE('边标签'):选择指定标签的出边。
  • where(inV().hasLabel('顶点标签').has('属性', '属性值')):过滤保留与指定标签和属性值的入边连接的出边。
  • drop():删除选定的边。

示例: 假设我们要删除连接人员"John"和公司"ABC"的"worksFor"边,可以使用以下命令:

代码语言:txt
复制
g.V().has('person', 'name', 'John').outE('worksFor').where(inV().has('company', 'name', 'ABC')).drop()

推荐的腾讯云相关产品:

  • 腾讯云图数据库TencentDB for TGraph:提供高性能的分布式图数据库服务,支持海量数据的存储和查询。链接:https://cloud.tencent.com/product/TGraph

请注意,以上答案仅供参考,具体实现方式可能因数据库系统、版本或框架而有所差异。在实际应用中,请参考相关文档或官方指南进行操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一文了解各大图数据库查询语言(Gremlin vs Cypher vs nGQL)| 操作入门篇

Gremlin nGQL 称之为 Vertex,Cypher 则称之为 Node。如何在图数据库中新建一个点呢?...)这里说明下,无论 Gremlin nGQL 存在类似 IF NOT EXISTS  用法,即:如果不存在则创建,存在则直接返回。...nGQL 删除操作对应单词有 Delete  Drop , nGQL Delete 一般用于点,Drop 用于 Schema 删除,这点 SQL 的设计思路是一样的。...)的 CRUD说完类型应该进入到的常规操作部分了插入指定边类型的可以看到点的使用语法类似,只不过 Cypher nGQL 中分别使用 -[]->  -> 来表示关系,而 Gremlin...则用 to() 关键词来标识指向关系,使用这 3 种图查询语言的图数据库均为有向,下图左边为有向,右边为无向

11.5K21
  • Gremlin查询语言

    通过Gremlin查询语言JanusGraph基础上开发的应用程序,用户可以避免被数据库绑定,因为他们的应用程序可以迁移到支持Gremlin的其他图数据库。...遍历介绍 Gremlin查询是一系列从左到右的计算操作/函数。 下面通过第3章“入门”讨论的Gods图来展示一个简单的祖父查询的示例。...总之,这些步骤构成了类似路径的遍历查询。 每个步骤都可以分解并显示其结果。 构建更大,更复杂的查询时,这种构建遍历/查询的方式很有用。...鉴于神的图形只有一个战斗者(Hercules),另一个战斗者(为了举例)被添加到图中,Gremlin展示了如何将顶点添加到图形。...但是添加时必须指定边标签。 可以顶点边上设置作为键值对的属性。 使用SET或LIST基数定义的属性键,必须使用addProperty向顶点添加此属性。

    3.6K20

    JanusGraph图数据库的应用以及知识图谱技术介绍

    程序与janus的交互 将JanusGraph嵌入应用程序内,同一JVM中直接执行Gremlin查询。...JanusGraph 支持以实体为中心的存储查询 JanusGraph ,实体数据存储 PropertyKey Vertex 两个数据结构。...图数据访问管理: JanusGraph支持图数据库添加新的点,根据指定的点、关系类型方向创建。...它还支持查询两点间的最短路径或完全路径,以及使用多种查询语言(包括Gremlin、Cypher、SQL)进行查询删除、更新等操作。 8....这使得用户能够更灵活地进行数据检索查询。 10. 图管理: JanusGraph支持图实例的创建和删除。用户可以方便地管理图数据库的不同实例,根据需要进行创建或删除操作。 11.

    26410

    属性图数据库JanusGraph初探

    Core TinkerPop3 API是整个架构的基础,它定义了什么是点、属性。一个图系统至少要实现Core API。一旦实现,就可在系统是有Gremlin遍历语言。...一旦实现,Gremlin遍历可以图数据库(OLTP)图处理器(OLAP)上执行。然而,Gremlin语言是基于图的领域特定语言,根据点来解释图。用户也可以创建自己的领域特定语言。...索引,加快查询复杂查询 Elasticsearch Apache Solr Apache Lucene 通常,应用通过两种方法与JanusGraph交互: 1.当从本地或者远程检索数据, 内嵌应用的...JanusGraph的schema是可以使用过程修改的,而且不会导致服务宕机,也不会拖慢查询速度。...console 删除hbase的janusgraph表 将schema.groovy文件的注释代码去掉。

    3.6K50

    伸手党福利-从零开始玩转图库

    然后查询的出度节点,这样travesal就跳到了下一个节点,反复如此即可完成对图的遍历。...核心在于提供gremlin查询语法及引擎,类似sqlparse,把查询语言转变成执行计划。...”输出到右边的结果(示例的’vadas’’josh’) ?...每个或属性row中都是一个独立的cell,并且这些cell可以高效的完成插入删除。每行(row)可以存储的cell最大数hbase做存储场景下没限制,schema free随意新增列。...一个体系的ID编码压缩的对象序列化易于使得每个cell保持尽可能少地占用后端存储空间。 一条信息会被出度、入度vetex保留两遍,便于快速定位到邻接节点,可避免表级联查询

    4.9K30

    Gremlin查询概述

    RDF 由节点组成,节点表示实体/资源、属性,则表示了实体实体之间的关系以及实体属性的关系。RDF 没有外键主键,它使用的是 URI,万维网的标准引用格式。...图形,节点关系是最重要的实体; TinkerPop:TinkerPop是一种开源图计算框架,是 Apache 软件基金会旗下的一个顶级项目,该项目专注于为图数据库建立行业标准,包括一种名为Gremlin...,需要注意的是,只有商业版,Cypher的查询语句编译器才会生成高性能的查询动作。...JanusGraph 的缺陷 由上面的存储查询也可以看到,基于 Hbase的属性图有下面几个明显的缺陷: 顶点属性存储一行,当点的出入度越大时,属性查询耗时将会越大; 更新某一个属性时,需要先获取整个的数据...Gremlin 查询示例 关于 Gremlin的语法例子,请参考我之前写的 Gremlin查询概述 这一篇文章。

    4.1K10

    解惑图数据库!你知道什么是图数据库吗?

    灵活:图数据库有非常灵活的数据模型,使用者可以根据业务变化随时调整数据模型,比如任意添加删除顶点、,扩充或者缩小图模型这些都可以轻松实现,这种频繁的 Schema 更改在关系型数据库上不能到很好的支持...图数据库图将实体表现为节点,实体与其他实体连接的方式表现为联系()。...JanusGraph是一个可扩展的图形数据库,专门用于存储查询分析分布多机集群的数千亿个顶点关系的图形。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。...Lucene 与Apache TinkerPop图形堆栈本机集成: Gremlin查询语言 \ Gremlin图服务器 \ Gremlin应用程序 Apache 2许可下的开源 工具可视化存储JanusGraph...应用程序的客户代码(相对JanusGraph来说是客户)直接调用Gremlin查询JanusGraph存储的图,这种情况下外部存储系统可以是本地的,也可以处在远程 第二种方式:应用程序Janus

    4.7K270

    图解图库JanusGraph系列-解惑图数据库,你知道什么是图数据库吗?

    灵活:图数据库有非常灵活的数据模型,使用者可以根据业务变化随时调整数据模型,比如任意添加删除顶点、,扩充或者缩小图模型这些都可以轻松实现,这种频繁的 Schema 更改在关系型数据库上不能到很好的支持...我们知道一个图包含节点,如下图: 图数据库图将实体表现为节点,实体与其他实体连接的方式表现为联系()。...JanusGraph是一个可扩展的图形数据库,专门用于存储查询分析分布多机集群的数千亿个顶点关系的图形。 JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。...Lucene 与Apache TinkerPop图形堆栈本机集成: Gremlin查询语言 \ Gremlin图服务器 \ Gremlin应用程序 Apache 2许可下的开源 工具可视化存储JanusGraph...应用程序的客户代码(相对JanusGraph来说是客户)直接调用Gremlin查询JanusGraph存储的图,这种情况下外部存储系统可以是本地的,也可以处在远程 第二种方式:应用程序Janus

    2.5K40

    图数据库调研

    SPARQL的查询与 RDF 是一致的,RDF 是图,SPARQL 查询是子图匹配。 Gremlin:数据以属性图的形式存在,属性仍然,但是联接关系是直接以链接(比如指针)的形式存在的。...Neo4j Neo4j 是目前最流行的图形数据库,支持完整的事务,属性图中,图是由顶点(Vertex),(Edge)属性(Property)组成的,顶点都可以设置属性,顶点也称作节点,也称作关系...Neo4j创建的图是用顶点构建一个有向图,其查询语言cypher已经成为事实上的标准。 Neo4j 分为社区版企业版,社区版只能工作单机上,社区版免费 ,企业版收费 。...应用程序的客户代码(相对JanusGraph来说是客户)直接调用Gremlin查询JanusGraph存储的图,这种情况下外部存储系统可以是本地的,也可以处在远程。...应用程序Janus Graph处在两个不同JVM,应用通过给JanusGraph提交Gremlin查询给GremlinServer,来使用JanusGraph,因为JanusGraph原生是支持Gremlin

    6.6K30

    Gremlin-常用查询语句用法

    目录 一:gremlin查询过程 二:常用的查询方法 一:gremlin查询过程 gremlin查询是流式查询,一步一步的进行下去,当然这里的“一步”可能是一个方法(g.V().has())也可能是多个方法组成的一步...gremlin查询语句可以十分的灵活,从而满足我们的各种查询需求。...gremlin查询的形式方法有大体的了解,之后找方法官网就可以了 3:本文章使用过程会不断更新 二:常用的查询方法 首先,这里的g.V()的g为遍历实例,其创建为: graph = TinkerGraph.open...').valueMap() //获得节点的所有属性 //valueMap默认情况下不显示IDlabel值,必须添加true参数 g.V().has('name','gremlin').valueMap...(true) //返回的集合包含IDlabel值 g.V().has('code','AUS').valueMap(true,'region') //返回id+label+region三个属性的kv

    3K40

    十的次方 - 第一部分

    在其基本制表符分隔的数据结构,包含7,115个顶点103,689条,这是我们演示的合适的大小。 开始我们的示例之前,我们需要下载并解压最新版本的Titan(titan-all包)。...fromVertex.addEdge('votesFor', toVertex) - 构造两个顶点之间的。 g.commit()- 值得注意的是,这个加载是单个事务的上下文中执行的。...处理100万条或更多时,我们有必要在过程执行中间提交。 要执行此脚本,请将其复制到Titan安装目录根目录下的文件。请注意,该脚本将在文件系统上生成Titan数据库。开始Gremlin 。...BatchGraph覆盖默认addVertexgetVertex功能并允许通过NPI number进行规范查找顶点。如果没有找到顶点,getVertex将返回null并添加顶点。...在数百万和数千万条的规模上,我们通常需要Gremlin脚本REPL来批量加载活动。对于那些刚刚开始使用TinkerPopTitan的人来说,需要掌握最基本的堆栈知识。

    1.8K50

    知识图谱之图数据库如何选型:知识图谱存储与图数据库总结、主流图数据库对比(JanusGraph、HugeGraph、Neo4j、Dgraph、NebulaGraph、Tugrapg)

    : RDF三元组库原生图数据库 查询语言 知识图谱查询语言: SPARQL、Cypher、Gremlin、PGQL G-CORE 语法 / 语义 / 特性 SPARQL Cypher Gremlin...导航式查询 语法 RPQ 超集 (增加反向属性集上的否定) RPQ 子集 (* 只能作用在单边) RPQ 超集 (增加通过表达式比较属性值) RPQ 超集 (增加比较路径上的顶点) RPQ 超集...Gremlin 其他语义可以被模拟出来. 7. PGQL 路径查询可通过用户定义函数实现其他语义. 8. PGQL 路径查询返回单条最短路径, 集合包语义相同. 9....(2) 对于一行来说,仅在极 少数列上具有值, 表存在大量空值, 空值过多会影响表的存储、索引查询性能 (3) 知识图谱,同一主语 谓语可能具有多个不同宾语,即一对多联系或多值属性,而水平表的一行一列上只能存储一个值...查询语言方面,OrientDB 支持扩展的 SQL Gremlin 用于图上的导航式查询;OrientDB 的 MATCH 语句实现了声明式的模式匹配,这类似于 Cypher 语言查询模式。

    4.1K11

    如何在Ubuntu 16.04上使用CassandraElasticSearch设置Titan Graph数据库

    Titan用于存储查询分布多台机器上的大量数据。它可以使用各种存储后端,如Apache Cassandra,HBaseBerkeleyDB。...本教程,您将安装Titan 1.0,然后配置Titan以使用CassandraElasticSearch。...第2步 - 使用Gremlin查询图表 Gremlin是一种图形遍历语言,用于查询,分析操作Graph数据库。现在Titan已经设置并启动,您将使用Gremlin创建和查询Titan的节点边缘。...图形数据库,您主要通过遍历它来查询数据,而不是像关系数据库一样检索具有连接索引的记录。为了遍历图形,我们需要来自graph参考变量的图形遍历源。以下命令可实现此目的。...禁用此服务将从目录删除此文件。

    2.3K20

    查询语言指南

    什么是图查询语言? 图查询语言是一种用于查询操作图数据库的编程语言。它允许开发人员有效地检索更新存储图结构的数据。图数据库,数据表示为节点(实体)(关系),这与传统的关联数据库不同。...使用图查询语言,您可以遍历这些节点以查找特定模式或关系。这使得处理涉及多个连接级别的复杂查询变得更加容易。例如,您可以社交网络快速找到所有朋友的朋友,或在交通网络识别两点之间的最短路径。...例如,社交网络查找某人的所有朋友,或追踪交通网络的最短路径。图查询语言旨在无缝地处理这些任务。它们允许您快速地遍历节点,确保您能够没有不必要延迟的情况下检索所需的信息。...在数据结构频繁变化的动态环境,灵活性是关键。图查询语言允许您在数据模型演变时修改查询。您可以轻松地添加新的节点关系类型,或更新现有类型,而无需重写整个查询逻辑。...图数据库,你可以通过节点轻松导航,以查找特定模式或关系。例如,社交网络查找朋友的朋友,或在交通网络追踪两点之间的最短路径,使用图查询语言都很简单。

    16110

    gremlin-both()与bothE().bothV()的区别

    本文链接:https://blog.csdn.net/CSDN___LYY/article/details/102628505 前言 之前一直以为gremlin查询gremlin的both()...但是实际应用,发现他们并不是相同的。....= graph.V(3).both(): 返回 id为3的节点出获取到的目标节点,不包含id为3的源节点 graph.V(3).bothE().bothV():返回 id为3的节点的出入编获取到的所有节点...官网链接 http://kelvinlawrence.net/book/Gremlin-Graph-Guide.html#otherv 实际执行测试结果 ps:以下结果均在gremlin服务实际测试...,不过进行了信息脱敏处理 获取测试数据,执行:g.V().has("user_id","5796").bothE("edge_value")获取一条如下,源节点(id为2539) 目标节点(id为

    1.2K20

    Gremlin -- 常用查询用法

    目录 一:gremlin查询过程 二:常用的查询方法 三:java如何使用呢?...1:创建源节点 2:组装语句 一:gremlin查询过程 gremlin查询是流式查询,一步一步的进行下去,当然这里的“一步”可能是一个方法(g.V().has())也可能是多个方法组成的一步(g.V...,这使得gremlin查询语句可以十分的灵活,从而满足我们的各种查询需求。...gremlin查询的形式方法有大体的了解,之后找方法官网就可以了 3:本文章使用过程会不断更新 二:常用的查询方法 首先,这里的g.V()的g为遍历实例,其创建为: graph = TinkerGraph.open...').valueMap() //获得节点的所有属性 //valueMap默认情况下不显示IDlabel值,必须添加true参数 g.V().has('name','gremlin').valueMap

    13K96
    领券