gremlin-both()与bothE().bothV()的区别
前言
之前一直以为在gremlin查询中,gremlin的both()和bothE().bothV()效果相同。但是在实际应用中,发现他们并不是相同的。
let`s begin~ =.=
graph.V(3).both()
: 返回 id为3的节点出边和入边获取到的目标节点,不包含id为3的源节点
graph.V(3).bothE().bothV()
:返回 id为3的节点的出边和入编获取到的所有节点,包含id为3的源节点
官网上解释
bothV()
The bothV step returns the vertices at both ends of an edge
。
both()
If we wanted to return vertices instead of edges, we could use the both step. This will return all of the vertices connected to the vertex with an ID of 3
regardless of whether they are connected by an outgoing or an incoming edge.
官网链接 http://kelvinlawrence.net/book/Gremlin-Graph-Guide.html#otherv
实际执行测试结果
ps:以下结果均在gremlin服务中实际测试,不过进行了信息脱敏处理
获取测试数据,执行:g.V().has("user_id","5796").bothE("edge_value")
获取一条边如下,源节点(id为2539) 和 目标节点(id为8853)
==>e[2l8xqf8-15zryu8-5slx][2539-edge_value->8853]
使用both执行:g.V().has("user_id","5796").both("edge_value")
获取到一个节点,只包含目标节点,不包含源节点
==>v[8853]
使用bothE、bothV执行:g.V().has("user_id","5796").bothE("edge_value").bothV()
获取到两个节点,可以发现不仅包含目标节点还包含源节点
==>v[2539] ==>v[8853]
over~ =.=
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Laravel框架自定义分页样式操作示例
- 使用composer 安装 laravel框架的方法图文详解
- laravel5.6 框架操作数据 Eloquent ORM用法示例
- Python版名片管理系统
- docker-compose部署php项目实例详解
- Linux下通过sed命令对kv方式的配置文件进行修改
- laravel5.6框架操作数据curd写法(查询构建器)实例分析
- PHP基于timestamp和nonce实现的防止重放攻击方案分析
- 怎么在 Linux 中查找一个命令或进程的执行时间
- laravel5.6 框架邮件队列database驱动简单demo示例
- php layui实现前端多图上传实例
- 解决Centos7下crontab+shell脚本定期自动删除文件问题
- PHP使用ajax的post方式下载excel文件简单示例
- laravel邮件发送的实现代码示例
- php curl发送请求实例方法