用python操作和管理ArangoDB,python操作arangodb,目录:连接数据库创建
用python操作和管理ArangoDB,python操作arangodb,目录:连接数据库创建
目录:
连接数据库创建数据库/集合/文档检索筛选更新删除调用AQL的方法安装需要用到的python包:
pip install pyarango
一、连接数据库:
>>> from pyArango.connection import *>>> conn = Connection(username="root", password="root_passwd")
当该代码执行时,它会初始化conn变量上的服务器连接。默认情况下,pyArango会尝试建立与http://127.0.0.1:8529的连接。
二、创建数据库/集合/文档
创建和打开数据库
方法:
createDatabase()
该方法可以在服务器上打开或创建数据库,当要连接的数据库不存在时,pyArango会在服务器上创建它。当它存在时,pyArango会尝试打开数据库。
>>> db = conn.createDatabase(name="school")
也可以使用其名称作为服务器连接上的键来打开现有数据库:
>>> db = conn["school"]>>> dbArangoDB database: school
创建集合
方法:
createCollection()
>>> studentsCollection = db.createCollection(name="Students")>>> db["Students"]ArangoDB Collection name: Students, id: 202, type: document, status loaded
创建文档
方法:
createDocument()
>>> doc1 = studentsCollection.createDocument()>>> doc1["name"] = "John Smith">>> doc1ArangoDoc ‘None‘: {‘name‘: ‘John Smith‘}>>> doc2 = studentsCollection.createDocument()>>> doc2["firstname"] = "Emily">>> doc2["lastname"] = "Bronte">>> doc2ArangoDoc ‘None‘: {‘firstname‘: ‘Emily‘, ‘lastname‘: ‘Bronte‘}
因为尚未将其保存到ArangoDB,所以该文档显示其_id为“None”。这意味着该变量存在于您的Python代码中,但不存在于数据库中。 ArangoDB 通过将集合名称与__key值进行配对来构造_id值。
保存文档:
>>> doc1._key = "johnsmith">>> doc1.save()>>> doc1ArangoDoc ‘Students/johnsmith‘: {‘name‘: ‘John Smith‘}
循环输入数据:
>>> students = [(‘Oscar‘, ‘Wilde‘, 3.5), (‘Thomas‘, ‘Hobbes‘, 3.2), ... (‘Mark‘, ‘Twain‘, 3.0), (‘Kate‘, ‘Chopin‘, 3.8), (‘Fyodor‘, ‘Dostoevsky‘, 3.1), ... (‘Jane‘, ‘Austen‘,3.4), (‘Mary‘, ‘Wollstonecraft‘, 3.7), (‘Percy‘, ‘Shelley‘, 3.5), ... (‘William‘, ‘Faulkner‘, 3.8), (‘Charlotte‘, ‘Bronte‘, 3.0)]>>> for (first, last, gpa) in students:... doc = studentsCollection.createDocument()... doc[‘name‘] = "%s %s" % (first, last)... doc[‘gpa‘] = gpa ... doc[‘year‘] = 2017... doc._key = ‘‘.join([first, last]).lower() ... doc.save()
三、检索筛选
查看某一个特定学生的GPA:
>>> def report_gpa(document):... print("Student: %s" % document[‘name‘])... print("GPA: %s" % document[‘gpa‘])>>> kate = studentsCollection[‘katechopin‘]>>> report_gpa(kate)Student: Kate ChopinGPA: 3.8
筛选平均成绩在3.5以上的学生:
方法:
fetchAll()
>>> def top_scores(col, gpa):... print("Top Soring Students:")... for student in col.fetchAll():... if student[‘gpa‘] >= gpa:... print("- %s" % student[‘name‘])>>> top_scores(studentsCollection, 3.5)Top Scoring Students:- Mary Wollstonecraft - Kate Chopin- Percy Shelly- William Faulkner- Oscar Wilde
四、更新
可以定义一个特定的函数来处理更新:
>>> def update_gpa(key, new_gpa):... doc = studentsCollection[key]... doc[‘gpa‘] = new_gpa... doc.save()
五、删除
方法:
delete()
>>> tom = studentsCollection["thomashobbes"]>>> tom.delete()>>> studentsCollection["thomashobbes"]KeyError: ( ‘Unable to find document with _key: thomashobbes‘, { ‘code‘: 404, ‘errorNum‘: 1202, ‘errorMessage‘: ‘document Students/thomashobbes not found‘, ‘error‘: True})
六、调用AQL的方法
除了上面显示的Python方法之外,ArangoDB还提供了一种查询语言(称为AQL),用于检索和修改数据库上的文档。在pyArango中,您可以使用AQLQuery()方法执行这些查询。
检索所有文档的_key:
>>> aql = "FOR x IN Students RETURN x._key">>> queryResult = db.AQLQuery(aql, rawResults=True, batchSize=100)>>> for key in queryResult:... print(key)marywollstonecraftkatechopinpercyshelleyfyodordostoevskymarktwain...
参考资料:
https://www.arangodb.com/tutorials/cn-tutorial-python/
用python操作和管理ArangoDB
相关内容
- RobotFramework+python,,于 接口测试解压包,
- ROS惯导数据发布(Python),,一、背景 基本配置
- PAT 1084 外观数列python解法,patpython,外观数列是指具有以
- 基于python的机器学习实现日元币对人民币汇率预测,
- python注册到eureka,,由于python提供
- Python3安装geohash,,Geohash是一个
- centos7安装python3和Django后,ModuleNotFoundError: No module nam
- 图像标注工具labelImg安装方法(win7+Python3.5+Qt5),labe
- 关于python使用requests依赖包时出现版本不匹配的警告问
- 安装python、pycharm 和anaconda,, 由于刚开始学习p
评论关闭