使用Python操作ArangoDB的方法步骤


Posted in Python onFebruary 02, 2020

前面说过怎样使用 ArangoDB 的 Web,Shell 和 Restful API 来操作数据库,今天看一下怎样使用Python语言来操作ArangoDB数据库。

要通过 Python 脚本来访问 ArangoDB,我们需要先安装 pyArango 库

$ pip install pyArango

下面写了一个简单的 Python 脚本,其中包含了一些常用的操作,如:创建连接,数据库操作,集合操作和文档操作等。

from pyArango.connection import *


# 创建连接
conn = Connection(arangoURL='http://106.54.228.237:8529', username="root", password="Letmein")
print('conn: %s' % conn)

# 创建数据库
if not conn.hasDatabase('mydb'):
  conn.createDatabase(name="mydb")

db = conn['mydb']
print('db: %s' % db)

# 创建集合
if not db.hasCollection('users'):
  db.createCollection(name='users')

collection = db['users']
print('collection: %s' % collection)

# 插入文档数据
print('collection count before insert: %s' % collection.count())
for i in range(0, 10):
  user = {
    'name': 'user_' + str(i), 
    'age': 20 + i, 
    'address': {
      'home': 'home address', 
      'office': 'office address'
    }
  }
  collection.createDocument(user).save()
print('collection count after insert: %s' % collection.count())

# 分页查询文档
print('fetchAll ...')
query = collection.fetchAll(skip=5, limit=2)
for doc in query:
  print(doc)

# 按条件查询文档
print('fetchByExample ...')
query = collection.fetchByExample({'name': 'user_5'}, batchSize=10, count=True)
for doc in query:
  print(doc)

# 使用AQL查询文档
print('query by AQL ...')
aql = "FOR user IN users FILTER user.name == @name || user.age > 25 LIMIT 5 RETURN user"
bindVars = {'name': 'user_0'}
query = db.AQLQuery(aql, rawResults=False, batchSize=1, bindVars=bindVars)
for doc in query:
  print(doc)

# 删除文档
print('collection count before delete: %s' % collection.count())
query = collection.fetchAll()
for doc in query:
  doc.delete()
print('collection count after delete: %s' % collection.count())

# 删除集合
collection.delete()

参考文档

https://pyarango.readthedocs.io/en/stable/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 自动安装 Rising 杀毒软件
Apr 24 Python
python 正则式使用心得
May 07 Python
python集合用法实例分析
May 30 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
python url 参数修改方法
Dec 26 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
Python实现爬取并分析电商评论
Jun 19 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 #Python
Python 模拟生成动态产生验证码图片的方法
Feb 01 #Python
Python递归及尾递归优化操作实例分析
Feb 01 #Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 #Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 #Python
Python random模块制作简易的四位数验证码
Feb 01 #Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 #Python
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
element实现合并单元格通用方法
2019/11/13 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Flask之flask-script模块使用
2018/07/26 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
私有程序集与共享程序集有什么区别
2013/04/05 面试题
软件测试英文面试题
2012/10/14 面试题
教师实习自我鉴定
2013/12/11 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
教学督导岗位职责
2015/04/10 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
祝酒词范文
2015/08/12 职场文书
党员理论学习心得体会
2016/01/21 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
openstack云计算keystone组件工作介绍
2022/04/20 Servers