Python Driver for ArangoDB
Project description
Python-Arango
Python driver for ArangoDB, a scalable multi-model database natively supporting documents, graphs and search.
If you're interested in using asyncio, please check python-arango-async.
Requirements
- ArangoDB version 3.11+
- Python version 3.9+
Installation
pip install python-arango --upgrade
Getting Started
Here is a simple usage example:
from arango import ArangoClient # Initialize the client for ArangoDB. client = ArangoClient(hosts="http://localhost:8529") # Connect to "_system" database as root user. sys_db = client.db("_system", username="root", password="passwd") # Create a new database named "test". sys_db.create_database("test") # Connect to "test" database as root user. db = client.db("test", username="root", password="passwd") # Create a new collection named "students". students = db.create_collection("students") # Add a persistent index to the collection. students.add_index({'type': 'persistent', 'fields': ['name'], 'unique': True}) # Insert new documents into the collection. students.insert({"name": "jane", "age": 39}) students.insert({"name": "josh", "age": 18}) students.insert({"name": "judy", "age": 21}) # Execute an AQL query and iterate through the result cursor. cursor = db.aql.execute("FOR doc IN students RETURN doc") student_names = [document["name"] for document in cursor]
Another example with graphs:
from arango import ArangoClient # Initialize the client for ArangoDB. client = ArangoClient(hosts="http://localhost:8529") # Connect to "test" database as root user. db = client.db("test", username="root", password="passwd") # Create a new graph named "school". graph = db.create_graph("school") # Create a new EnterpriseGraph [Enterprise Edition] eegraph = db.create_graph( name="school", smart=True) # Create vertex collections for the graph. students = graph.create_vertex_collection("students") lectures = graph.create_vertex_collection("lectures") # Create an edge definition (relation) for the graph. edges = graph.create_edge_definition( edge_collection="register", from_vertex_collections=["students"], to_vertex_collections=["lectures"] ) # Insert vertex documents into "students" (from) vertex collection. students.insert({"_key": "01", "full_name": "Anna Smith"}) students.insert({"_key": "02", "full_name": "Jake Clark"}) students.insert({"_key": "03", "full_name": "Lisa Jones"}) # Insert vertex documents into "lectures" (to) vertex collection. lectures.insert({"_key": "MAT101", "title": "Calculus"}) lectures.insert({"_key": "STA101", "title": "Statistics"}) lectures.insert({"_key": "CSC101", "title": "Algorithms"}) # Insert edge documents into "register" edge collection. edges.insert({"_from": "students/01", "_to": "lectures/MAT101"}) edges.insert({"_from": "students/01", "_to": "lectures/STA101"}) edges.insert({"_from": "students/01", "_to": "lectures/CSC101"}) edges.insert({"_from": "students/02", "_to": "lectures/MAT101"}) edges.insert({"_from": "students/02", "_to": "lectures/STA101"}) edges.insert({"_from": "students/03", "_to": "lectures/CSC101"}) # Traverse the graph in outbound direction, breath-first. query = """ FOR v, e, p IN 1..3 OUTBOUND 'students/01' GRAPH 'school' OPTIONS { bfs: true, uniqueVertices: 'global' } RETURN {vertex: v, edge: e, path: p} """ cursor = db.aql.execute(query)
Please see the documentation for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python_arango-8.2.2.tar.gz (153.6 kB view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
python_arango-8.2.2-py3-none-any.whl (115.2 kB view details)
File details
Details for the file python_arango-8.2.2.tar.gz
.
File metadata
- Download URL: python_arango-8.2.2.tar.gz
- Upload date:
- Size: 153.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 395a975523fc748af7623c71e2d0d3cb544252698de01a284c6036159ea85397 | |
MD5 | ca2f31798159e0b23126b7254a153763 | |
BLAKE2b-256 | 9f1df970d132930a760ac9b67984a59b0c16ed83bf8431381cc27b2527727a9d |
File details
Details for the file python_arango-8.2.2-py3-none-any.whl
.
File metadata
- Download URL: python_arango-8.2.2-py3-none-any.whl
- Upload date:
- Size: 115.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 987bb8b6faadaeb0f53b35298114773a86c3416da05863a389c44a526fd32c71 | |
MD5 | c070c980852c51271348826048ad9d98 | |
BLAKE2b-256 | 2b1eee3fc2fe3bfe16f957859bc978b152f7b4ef32ff6b1380aff95420cbc728 |