Arangodb(四)——高级操作

续上篇

Filter

  • Equality condition(相等条件)

    for user in users
    	filter user.age=="18"
    	return user
    
  • Range conditions(范围条件)

    for user in users
    	filter user.age >"18"
    	return {name:user.name,age:user.age}
    

    在这里插入图片描述

  • Multiple conditions(多条件)

    for user in users
        filter user.age>="18"
        filter user.sex !=null
        return {name:user.name}
    

    注意:上面的写法还可以用布尔运算中的AND。

    for user in users
        filter user.age>="18" and user.sex !=null
        return {name:user.name}
    

    在这里插入图片描述

  • Alternative conditions(二选一)

    若想文档满足一个或另一个条件,也可能是不同的属性,则使用OR

    for user in users
        filter user.name=="Anna" OR user.name=="Annie"
        return {name:user.name , age:user.age}
    

    注意:上面代码中必须是==单=会报错。在这里插入图片描述

Limit

可能并不总是需要返回FOR循环通常会返回的所有文档。在这些情况下,我们可以使用LIMIT()操作限制文档数量。将结果中的元素数量减少到最多指定的数量,可选择跳过元素(分页)。

语法一:
LIMIT后面跟着一个最大文件数的数字。

例如:在users集合中只想要4条数据的实现如下:

for user in users
   limit 4
    return {name:user.name}

在这里插入图片描述
语法二:
它允许跳过一定数量的记录并返回下一个n个文档。

例如:limit 4,5的意思就是跳过前面4个并返回后面5个数据

for user in users
   limit 2,5
    return user.name

上面代码中limit 2,5是跳过前2个返回后面的5个数据(因为后面的数据不够5个),效果图如下所示:
在这里插入图片描述

温故

如果想让上面的名字按顺序排列呢?是不是就用到了sort这个关键字呢?好,先将集合users中的数据循环显示出来(便于后面可以清晰的看结果):

for user in users
	sort user.name
    return user.name

在这里插入图片描述
接下来只显示4条数据:

for user in users
	sort user.name
	limit 4
    return {name:user.name}

在这里插入图片描述
那么我只想要第3,4,5条数据(即名字为Anna、Annie和linda),又该如何写呢?

for user in users

    sort user.name
    
    limit 2,5
    
    return user.name

在这里插入图片描述

发布了93 篇原创文章 · 获赞 60 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43363871/article/details/93733541