ArangoDB是一個多模型數據庫管理系統,它支持文檔、圖形和鍵值對數據模型。AQL(ArangoDB查詢語言)是用于在ArangoDB中執行查詢和操作數據的官方查詢語言。以下是AQL可以執行的一些常見查詢操作:
文檔查詢:
FOR doc IN collection_name FILTER condition RETURN doc
:用于從集合中檢索滿足特定條件的文檔。FOR doc IN collection_name RETURN doc._key, doc.property1, doc.property2
:返回文檔的特定屬性。FOR doc IN collection_name UPDATE doc WITH {property1: new_value} IN collection_name
:更新集合中的文檔。圖形查詢:
FOR v, e, p IN 1..<max_depth> OPTIONS {bfs: true, uniqueVertices: 'global', vertexIds: ['startVertexId']} RETURN v, e, p
:執行廣度優先搜索(BFS)。FOR v, e, p IN graph_name OPTIONS {aql: 'shortestPath', weightAttribute: 'weight'} RETURN v, e, p
:查找圖中的最短路徑。鍵值對查詢:
FOR key, value IN collection_name FILTER condition RETURN key, value
:從鍵值對集合中檢索滿足特定條件的鍵值對。聚合查詢:
FOR item IN collection_name COLLECT aggregate_function(item) INTO grouped_items RETURN grouped_items
:對集合中的文檔進行分組和聚合操作。事務查詢:
FOR doc IN collection_name UPDATE doc WITH {property1: new_value} IN collection_name OPTIONS {write: 'transaction'}
:在事務中更新文檔。索引查詢:
FOR doc IN collection_name FILTER doc.property == value USE index_name RETURN doc
:使用索引加速查詢。地理空間查詢:
FOR point IN collection_name FILTER geo.distance(point, {latitude: 40, longitude: 110}) <= 10 RETURN point
:執行地理空間距離查詢。這些只是AQL功能的一部分,AQL還支持更復雜的查詢操作,如子查詢、正則表達式匹配、數組操作等。此外,ArangoDB還提供了豐富的圖形查詢功能,包括遍歷、連接、分組、排序等。