Advertisement

ArangoDb学习笔记————AQL tutorial(一)

阅读量:

最近做一个项目要用到ArangoDb,一搜发现连中文文档都没有,所以一边看官网上英文文档,一边做下总结。

首先对几个关键词要有个大概的了解:

AQL :arangodb query language,arangodb的查询语言,可与类似于SQL。

Collections :有Docunment和Edge两种类型,这个可以类似于Oracle上的表,AQL不能操作Collections

Document :可以类似于Oracle上表中的一条记录,

Edge :可以类似于Oracle上表中的一条记录,跟Document不同的是,这个存储的是Document之间的关系。

----------------------------------------------分割线------------------------------------------------

对于一个数据库来说,主要的功能也就是对数据的增删改查,对于arangodb来说也是一样。

以AQL tutorial章节里面新建的Characters为例,来总结一下增删改查的用法

新增:

复制代码
 INSERT {

    
     "name": "Ned",
    
     "surname": "Stark",
    
     "alive": true,
    
     "age": 41,
    
     "traits": ["A","H","C","N","P"]
    
 } INTO Characters

跟Oracle一样,insert是用来插记录的,大括号里面这个json对象(key-value键值对)就是document,也就是要插入的数据,

跟oracle不同的地方,oracle里每一行的key(也就是列头)都是相同的,而arangodb很明显可以不同。

另外新增完,会多出三个属性(_id, _rev, _key),其中_key可以在新增的时候指定,不指定的话会默认生成一个,主要用来保证document的唯一性(例如:347),_id是Collections的名字和_key的组合(例如:Characters/347),_rev理解为系统管理的版本(revision Id)。

修改:

复制代码
 UPDATE "2861650" WITH { alive: false } IN Characters

    
  
    
  
    
 REPLACE "2861650" WITH {
    
     name: "Ned",
    
     surname: "Stark",
    
     alive: false,
    
     age: 41,
    
     traits: ["A","H","C","N","P"]
    
 } IN Characters

update关键词作用是修改,原document里有的属性修改,没有的就新增

replace关键词作用是替换,用新的documnet替换原来的document

删除:

复制代码
    REMOVE "2861650" IN Characters

删除就没有什么好说的,"2861650"是documnet的**_key** 值。

查询:

复制代码
 RETURN DOCUMENT("Characters", "2861650")

    
  
    
 RETURN DOCUMENT("Characters", ["2861650", "2861653"])
    
  
    
 RETURN DOCUMENT(["Characters/2861650", "Characters/2861653"])
    
  
    
 FOR c IN Characters
    
     RETURN c

Document函数可以用来查询指定collectionName和_key的记录

也可以用for循环来返回collection里面所有的记录

全部评论 (0)

还没有任何评论哟~