使用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选择排序算法的实现代码
Nov 21 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
Python创建模块及模块导入的方法
May 27 Python
python实现爬取千万淘宝商品的方法
Jun 30 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
python3实现多线程聊天室
Dec 12 Python
Python不同目录间进行模块调用的实现方法
Jan 29 Python
详解pandas的外部数据导入与常用方法
May 01 Python
python内存动态分配过程详解
Jul 15 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
Django Auth用户认证组件实现代码
Oct 13 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php验证手机号码
2015/11/11 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
创联软件面试题笔试题
2012/10/07 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
村官工作鉴定评语
2014/01/27 职场文书
食品销售计划书
2014/04/26 职场文书
房地产推广策划方案
2014/05/19 职场文书
驻村工作先进事迹
2014/08/14 职场文书
开场白怎么写
2015/06/01 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
python pyhs2 的安装操作
2021/04/07 Python
详解在OpenCV中如何使用图像像素
2022/03/03 Python