赞
踩
数据库是集合集。
集合存储记录,称为文档。
集合相当于RDBMS中的表,文档可以被认为是表中的行。
不同之处在于你没有事先定义哪些列(或更确切地说是属性)。任何集合中的每个文档都可以具有任意属性键和值。然而,单个集合中的文档可能在实践中具有类似的结构,但数据库系统本身并不强加它,并且无论数据如何,都将稳定且快速地运行。
单击COLLECTIONS—单击 Add Collection–命名(例如 users)
单击右侧带有白色加号的绿色圆圈,以在此集合中创建第一个文档。一个对话框会询问你_key。您可以将该字段留空,然后单击“ 创建”以让数据库系统分配自动生成的(唯一)密钥 。之后可以向里面添加相关的键值。
ArangoDB的查询语言来检索我们的文档。
根据创建文档的Id(其他也行)查询
单击QUERIES菜单项以显示查询编辑器并键入以下内容:RETURN DOCUMENT("users/2887")
点击Execute
执行,执行结果如下所示:
[
{
"_key": "2887",
"_id": "users/2887",
"_rev": "_YiiiIlW--_",
"name": "anna",
"age": "18",
"sex": "女"
}
]
DOCUMENT()这个函数是用来根据_key或_id来获取记录的
INSERT { name: "Anna", age: 20 } INTO users
INSERT { name: "Linda", age: 20} INTO users
RETURN NEW
[
{
"_key": "5880",
"_id": "users/5880",
"_rev": "_YijRjiW---",
"name": "Linda",
"age": 20
}
]
RETURN DOCUMENT("users/2887")
RETURN DOCUMENT("users/4887")
RETURN DOCUMENT("users/5880")
RETURN DOCUMENT( ["users/2887", "users/4887", "users/5880"] )
FOR user IN users
RETURN user
[ { "_key": "2887", "_id": "users/2887", "_rev": "_YiiiIlW--_", "name": "anna", "age": "18", "sex": "女" }, { "_key": "4887", "_id": "users/4887", "_rev": "_Yii8Tl6---", "name": "Anna", "age": 20 }, { "_key": "5880", "_id": "users/5880", "_rev": "_YijRjiW---", "name": "Linda", "age": 20 } ]
UPDATE允许部分编辑现有文档,只替换指定的属性并按原样保留其他的所有属性。
UPDATE "2887" WITH { QQ:"2320730324"} IN users
RETURN NEW
UPDATE关键字之后是文件密钥(_key属性等)来标识要修改的内容。要更新的属性在WITH关键字后面写为对象。IN表示在哪个集合中执行此操作,就像INTO(这两个关键字在这里实际可以互换)。如果我们使用NEW伪变量,则返回包含所应用更改的完整文档:
[
{
"_key": "2887",
"_id": "users/2887",
"_rev": "_YiyppL6--_",
"name": "anna",
"age": "18",
"sex": "女",
"QQ": "2320730324" //多了此行
}
]
REMOVE "5880" IN users
SQL | AQL |
---|---|
database | database |
table | collection |
row | document |
column | attribute |
table joins | collection joins |
primary key | primary key (automatically present on _key attribute) |
index | index |
//SQL:
INSERT INTO users (name, age) VALUES ("anna", "20");
//AQL:
INSERT { name: "anna", age: "20" } INTO users
//SQL:
UPDATE users SET name = "Anna" WHERE id = 2887;
//AQL:
UPDATE { _key: "2887" } WITH { name: "Anna" } IN users
//SQL:
DELETE FROM users WHERE id = 2887;
//AQL:
REMOVE { _key:"2887" } IN users
//SQL
SELECT * FROM users;
//AQL
//单个文档查询
return document("id")
//多文档查询
FOR user IN users
RETURN user
对比之后是不是觉得AQL语言更接近原生呢
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。