图数据库入门教程(七)结果处理
1. count()
统计当前结果的数量
//1. 查询所有节点数量
g.V().count()
//2. 查询label是person的节点数量
g.V().hasLabe('person').count()
//3. 查询张三好友的数量
g.V().has('person','name','张三').both().count()
2. limit(n)
限制返回结果数
//1. 返回一个节点
g.V().limit(1)
//2. 查询label是person的节点,返回2个节点
g.V().hasLabe('person').limt(2)
//3. 查询张三好友,返回两个好友
g.V().has('person','name','张三').both().limt(2)
3. skip(n)
一般和limit(n)搭配用,可以用来分页
//1. 查询张三好友,返回前10个好友
g.V().has('person','name','张三').both().skip(0).limt(10)
//2. 查询张三好友,返回前10-20之间的好友
g.V().has('person','name','张三').both().skip(0).limt(10)
4. range(start,end)
查询指定区间的数据
//1. 查询张三好友,返回前10个好友
g.V().has('person','name','张三').both().range(0,10)
//1. 查询张三好友,返回前10-20之间的好友
g.V().has('person','name','张三').both().range(10,20)
注:range(0,10),返回 0-9角标的数据,range(10,20),返回10-19角标的数据
5. dedup()
对结果去重
//1. 查询张三好友,去除重复的还有
g.V().has('person','name','张三').both().dedup()
6. values()
查询指定属性
//1. 查询张三好友,返回它们的名称
g.V().has('person','name','张三').both().dedup().values('name')
输出
[
"李四",
"王五",
"孙八"
]
7. id()
返回id属性
//1. 查询张三好友,去除重复的返回id
g.V().has('person','name','张三').both().dedup().id()
输出
[
77952,
77992,
82048
]
8. project().by()
g.V().has('person', 'name', '张三').both().project('name','level').by('name').by(constant(1))
输出
[
{
"name": "李四",
"level": 1
},
{
"name": "王五",
"level": 1
},
{
"name": "孙八",
"level": 1
}
]
从当前结果中提取字段到map中,可以看到上面我们提取了name字段,level字段,其中level字段用一个常量填充,常量需要用constant()修饰。
上面的代码还有另一种写法
g.V().has('person', 'name', '张三').both().as('name','level').select('name', 'level').by('name').by(constant(1))
输出
[
{
"name": "李四",
"level": 1
},
{
"name": "王五",
"level": 1
},
{
"name": "孙八",
"level": 1
}
]
fold
将结果放入list
unfold
将结果展开
g.V().has('code','AUS').valueMap().unfold()