-
学习:
(1) arangodb是一个服务器数据库,他是用tcp连接,http协议来以json形式传输document。数据库提供了一个REST API来与数据库交互。(2) 数据库是集合的集合. 集合存储记录, 记录被称为文档. 集合等价于 RDBMS 中的表, 而文档可以被认为是表中的行. 区别在于你不需要预先定义有哪些列 (或者属性). 任意集合中的所有文档可以拥有任意的属性键与值. 然而实际上一个集合中的文档具有相似的结构, 但是数据库系统本身并不会关心,无论你的数据是什么样子,数据库系统都会在其上执行稳定而快速的操作.
(3) document:可以有0个或者多个属性,每个属性都有一个属性值。值可以是原子类型,即数字,字符串,布尔值或空值,也可以是复合类型,即数组或另一个document对象。我们可以任意的嵌套数据结构以代表实际情况。
(4) collections:是有多个documents组成的。一个collection包含0个或多个document.colletions相当于数据库的表,document相当于一条条的记录。只是collections没有自己的列标题,每个documetn可以有不同的结构,都以键值对的形式来包含所有信息。collection并不要求所有的document都有相同的结构。
<!--插入一条数据-->
INSERT {
"name": "basco",
"Alive?": "true",
"Address": ["中国","深圳","华润大厦"]
} IN basco_test1_1
<!--批量插入数据-->
LET many = [
{_key:"a1",name: "basco", address:"广东"},
{_key:"a2",name: "Tom", address:"北京"},
{_key:"a3",name: "CoCo", address:"云南"},
{_key:"a4",name: "Jetty", address:"上海"}
]
FOR m IN many
INSERT m INTO basco_test1_1
<!--批量查询数据,相当于Select * from basco_test1_1-->
FOR result IN basco_test1_1
RETURN result
<!--指定查询,可跨数据库-->
RETURN DOCUMENT("basco_test1_1", ["8774", "7148"])
RETURN DOCUMENT(["Characters/7404","basco_test1_1/8774"])
<!--Filter限定查询,如Limit、DESC等-->
for c in basco_test1_1
FILTER c.name == "basco"
RETURN c
for c in basco_test1_1
sort c.name == "basco" DESC
LIMIT 10
RETURN c
<!--修改Update、replcae-->
UPDATE "7625" WITH {name: "bbbbb",Id: "21"} IN basco_test1_1 #其他不变
REPLACE"7625" WITH {
name: "bbb111",
Id: "19",
sex: "girl"
} IN basco_test1_1
#全部替代
<!--批量修改-->
For result IN basco_test1_1
UPDATE result WITH{ sex: "manmanman"} IN basco_test1_1
<!--删除,单条/批量-->
REMOVE "7625" IN basco_test1_1
FOR c IN basco_test1_1
REMOVE c IN basco_test1_1
- 内容: 安装并使用pyArango模块编写一个脚本,数据模型自定义,要有表的设计过程,包含基础的增删改查
from pyArango.connection import *
conn = Connection(username="root", password="")
db = conn.createDatabase(name="ArangoDB_test")
db = conn["ArangoDB_test"]
create_collection = db.createCollection(name="basco_test1_1")
print(create_collection)
aql = """LET many = [
{_key:"a1",name: "basco", address:"广东"},
{_key:"a2",name: "Tom", address:"北京"},
{_key:"a3",name: "CoCo", address:"云南"},
{_key:"a4",name: "Jetty", address:"上海"}
]
FOR m IN many
INSERT m INTO basco_test1_1 """
queryResult = db.AQLQuery(aql, rawResults=True, batchSize=100)
# for key in queryResult:
# print(key)
aql = """FOR result IN basco_test1_1
RETURN result"""
queryResult = db.AQLQuery(aql, rawResults=True, batchSize=100)
for result in queryResult:
print(result)
aql = """For result IN basco_test1_1
UPDATE result WITH{ Id: "2222"} IN basco_test1_1"""
queryResult = db.AQLQuery(aql, rawResults=True, batchSize=100)
aql = """REMOVE "a1" IN basco_test1_1"""
queryResult = db.AQLQuery(aql, rawResults=True, batchSize=100)