美文网首页
arango的AQL

arango的AQL

作者: 似水之星 | 来源:发表于2018-12-16 21:10 被阅读0次

arango实践

插入数据模板

INSERT document INTO collection options

修改数据模板

UPDATE document IN collection options // 修改文档里面所有数据
UPDATE keyExpression WITH document IN collection options //根据key值修改文档

插入数据

 //插入数据到user集合
 INSERT { name: "Katie Foster", age: 27 } INTO users 
 FOR user IN users  RETURN user 

查询数据

FOR user IN users  SORT user.age DESC  RETURN user  //按年龄倒叙排序查询user集合数据数据

FOR user IN users  FILTER user.age > 17  SORT user.age  RETURN user //查询年龄>17按年龄顺序排序的user集合数据

UPDATE "16097" WITH { age: 40 } IN users RETURN NEW  //更新users集合中_key为“16097”的用户的年龄为40

FOR user IN users  RETURN { userName: user.name, age: user.age } //查询user集合的姓名和年龄
FOR user IN users  RETURN CONCAT(user.name, "'s age is ", user.age) //把user集合的姓名和年龄组合在一起
REMOVE "9883" IN users //删除users集合中_key为“9883”的文档
  

复杂查询

 /*
 按性别分组查询实体tv_user的记录数量
 */
  FOR user IN tv_user
   COLLECT clt_sex = user.clt_sex 
     WITH COUNT INTO number
   RETURN { 
     clt_sex: clt_sex, 
     number: number 
   }
   
   /*
   查询tv_user实体记录数
   */
      FOR user IN tv_user
   COLLECT  
     WITH COUNT INTO number
   RETURN { 
     number: number 
   }
  
   
 /*
 统计用户最大年龄和最小年龄, 过滤不等于空的数据
 */
 FOR user IN users
   FILTER user.age != null
   COLLECT AGGREGATE
     minAge = MIN(user.age),
     maxAge = MAX(user.age)
   RETURN { minAge, maxAge }
   
   /*
  同时只需要类型(type) = 'friend', 在relation集合里面按关系类型(type)进行分组统计数量
   */
     FOR rl IN relation
   FILTER rl.type == 'friend'
   COLLECT type = rl.type 
     WITH COUNT INTO number
   RETURN { 
     type: type, 
     number: number 
   }
 
   
  /*
  最大年龄,最小年龄
 */ 
   FOR user IN users
   FILTER user.active == 1
   COLLECT AGGREGATE
     minAge = MIN(user.age),
     maxAge = MAX(user.age)
   RETURN { minAge, maxAge }
   
 

多表查询

 /*
   集合users和friends通过user和_key字段连接查询
 */
   FOR user IN users 
   FOR friend IN friends
     FILTER friend.user == user._key
     RETURN MERGE(user, friend)
     
    

图查询

//最短路径
FOR female, relation 
  IN ANY SHORTEST_PATH
  'male/bob' TO 'female/diana' 
  GRAPH 'social'
 return [female._key,male._key,relation.type]

相关文章

网友评论

      本文标题:arango的AQL

      本文链接:https://www.haomeiwen.com/subject/hqtfkqtx.html