📅  最后修改于: 2023-12-03 15:29:27.335000             🧑  作者: Mango
ArangoDB是一个多模型的开源数据库管理系统,支持文档存储、图形、键-值存储以及全文搜索等多种数据模型。本文将为程序员介绍ArangoDB的原始操作以及其在应用程序中的应用。
ArangoDB的原始操作包括以下几个方面:
在使用ArangoDB之前,需要通过ArangoDB的驱动程序建立与数据库的连接。通常,会优先使用本地连接:
import arango
client = arango.ArangoClient()
db = client.db("database")
当然,连接还可以使用连接字符串:
client = arango.ArangoClient(host="localhost", port=8529)
使用ArangoDB之前,必须先创建一个数据库。创建数据库的方式如下:
db = client.create_database("database")
删除数据库则比较简单:
db.delete_database("database")
在ArangoDB中,集合就是存储数据的容器。集合的创建方式如下:
collection = db.create_collection("collection")
删除集合:
collection.delete()
清空集合:
collection.truncate()
重命名集合:
collection.rename("new_name")
ArangoDB是一个文档存储数据库,因此文档是一种基本的数据存储方式。下面介绍文档的相关操作。
创建一个文档:
doc = {"_key": "my_key", "name": "Alice", "age": 29}
collection.insert(doc)
按照_key
查找文档:
doc = collection.get("my_key")
查询集合中的所有文档:
documents = [doc for doc in collection.all()]
更新文档:
doc["age"] = 30
collection.update(doc)
删除文档:
collection.delete(doc)
ArangoDB支持AQL(ArangoDB Query Language),这是一种类似于SQL的语言,用于查询和管理文档数据。下面介绍AQL:
查询集合中的所有文档:
cursor = db.aql.execute("FOR doc IN collection RETURN doc")
documents = [doc for doc in cursor]
根据条件查询文档:
cursor = db.aql.execute("FOR doc IN collection FILTER doc.age < 30 RETURN doc")
documents = [doc for doc in cursor]
ArangoDB内置了图形存储和操作,可以轻松地创建和查询图数据。下面介绍图操作:
创建图形:
graph = db.create_graph("graph")
创建顶点和边:
vertices = graph.create_vertex_collection("vertices")
edges = graph.create_edge_collection("edges")
vertices.insert({"_key": "v1", "name": "Alice"})
vertices.insert({"_key": "v2", "name": "Bob"})
edges.insert({"_key": "e1", "_from": "vertices/v1", "_to": "vertices/v2"})
查询顶点和边:
cursor = graph.traverse(start_vertex="vertices/v1", direction="outbound")
vertices = [doc for doc in cursor["vertices"]]
edges = [doc for doc in cursor["edges"]]
在完成操作之后,需要关闭与数据库的连接:
client.close()
ArangoDB可以像其他数据库一样用于构建应用程序。下面介绍如何使用ArangoDB来创建一个简单的应用程序。
创建一个Web应用程序:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
使用ArangoDB作为数据库:
import arango
from flask import Flask
app = Flask(__name__)
client = arango.ArangoClient()
db = client.db("database")
collection = db.collection("collection")
@app.route('/')
def home():
documents = [doc for doc in collection.all()]
return str(documents)
在上面的例子中,我们通过ArangoDB来获取文档数据,并将其展示在Web页面上。
本文介绍了ArangoDB的原始操作以及其在应用程序中的应用,其中包括数据库连接、集合的创建、删除、清空和重命名,文档的创建、查找、更新和删除,ArangoDB中的AQL以及图形操作。通过学习ArangoDB的原始操作,我们可以更好地使用ArangoDB构建高效的应用程序。