插入数据
语法是 INSERT document INTO collectionName。
document是一个对象,它由属性键和值对组成。AQL中属性键的引号是可选的。键总是字符序列(字符串),而属性值可以有不同的类型:
null / boolean (true, false) / number (integer and floating point) / string / array /object
collectionName为colletcion名称。
单条数据插入
INSERT {
"name": "Ned",
"surname": "Stark",
"alive": true,
"age": 41,
"traits": ["A","H","C","N","P"]
} INTO Characters
批量插入
LET data = [
{ "name": "Robert", "surname": "Baratheon", "alive": false, "traits": ["A","H","C"] },
{ "name": "Jaime", "surname": "Lannister", "alive": true, "age": 36, "traits": ["A","F","B"] },
{ "name": "Catelyn", "surname": "Stark", "alive": false, "age": 40, "traits": ["D","H","C"] },
{ "name": "Cersei", "surname": "Lannister", "alive": true, "age": 36, "traits": ["H","E","F"] },
{ "name": "Daenerys", "surname": "Targaryen", "alive": true, "age": 16, "traits": ["D","H","C"] },
{ "name": "Jorah", "surname": "Mormont", "alive": false, "traits": ["A","B","C","F"] }]
FOR d IN data
INSERT d INTO Characters
查询数据
一、查询collection中所有的记录
我们可以使用循环来检索它们。
FOR c IN Characters
RETURN c
循环的语法是FOR variableName IN collectionName。对于集合中的每个文档,c都被分配一个文档,然后按照循环体返回。该查询返回我们先前存储的所有字符。
类似于这个例子:
{
"_key": "2861650",
"_id": "Characters/2861650",
"_rev": "_V1bzsXa---",
"name": "Ned",
"surname": "Stark",
"alive": true,
"age": 41,
"traits": ["A","H","C","N","P"]
},
该文档具有我们存储的五个属性,另外还有三个由数据库系统添加的属性。每个文档都需要一个唯一的_key标识,以便在集合中标识它。这_id是一个计算属性,集合名称,正斜杠/和文档键的串联。它唯一地标识数据库中的文档。_rev是由系统管理的修订版本ID。以下划线开头的所有三个系统属性_都是只读的。
二、使用文档键或文档ID来检索特定的文档
借助AQL函数,我们可以使用文档键或文档ID来检索特定的文档DOCUMENT():
RETURN DOCUMENT("Characters", "2861650")
// --- or ---
RETURN DOCUMENT("Characters/2861650")
[
{
"_key": "2861650",
"_id": "Characters/2861650",
"_rev": "_V1bzsXa---",
"name": "Ned",
"surname": "Stark",
"alive": true,
"age": 41,
"traits": ["A","H","C","N","P"]
}
]
该DOCUMENT()功能还允许一次获取多个文档:
RETURN DOCUMENT("Characters", ["2861650", "2861653"])
// --- or ---
RETURN DOCUMENT(["Characters/2861650", "Characters/2861653"])
[
[
{
"_key": "2861650",
"_id": "Characters/2861650",
"_rev": "_V1bzsXa---",
"name": "Ned",
"surname": "Stark",
"alive": true,
"age": 41,
"traits": ["A","H","C","N","P"]
},
{
"_key": "2861653",
"_id": "Characters/2861653",
"_rev": "_V1bzsXa--B",
"name": "Catelyn",
"surname": "Stark",
"alive": false,
"age": 40,
"traits": ["D","H","C"]
}
]
]
更新数据
更新数据:
语法是UPDATE documentKey WITH object IN collectionName。它使用列出的属性更新指定的文档(或者如果它们不存在,则添加它们),但保持其余不变。
UPDATE "2861650" WITH { alive: false } IN Characters
要替换整个文档内容,您可以使用REPLACE:
REPLACE "2861650" WITH {
name: "Ned",
surname: "Stark",
alive: false,
age: 41,
traits: ["A","H","C","N","P"]
} IN Characters
这也适用于循环,为所有文档添加一个新属性,例如:
FOR c IN Characters
UPDATE c WITH { season: 1 } IN Characters
删除数据
要完全删除集合中的文档,请执行此REMOVE操作。
REMOVE "2861650" IN Characters
它也可以用在循环体中以有效截断集合:
FOR c IN Characters
REMOVE c IN Characters
本文详细介绍了如何使用AQL进行数据库操作,包括数据的插入、查询、更新和删除。通过具体示例,展示了单条和批量插入数据的方法,以及如何使用循环和函数查询数据。此外,还介绍了如何更新和删除数据。
959

被折叠的 条评论
为什么被折叠?



