实习第五天----ArangoDB、pyArango

  1. 学习:
    (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
  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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值