2013-02-18 85 views
10

Trong bối cảnh ArangoDB, có vỏ cơ sở dữ liệu khác nhau truy vấn dữ liệu:Khi nào tôi nên sử dụng AQL?

Mặc dù tôi hiểu việc sử dụng JavaScript là d MRuby, tôi không chắc chắn lý do tại sao tôi sẽ tìm hiểu, và nơi tôi sẽ sử dụng AQL. Có thông tin về điều này không? Ý tưởng để POST AQL trực tiếp đến máy chủ cơ sở dữ liệu?

Trả lời

6

AQL là ngôn ngữ truy vấn của ArangoDB. Nó có rất nhiều cách để truy vấn, lọc, sắp xếp, giới hạn và sửa đổi kết quả sẽ được trả về. Cần lưu ý rằng AQL chỉ đọc dữ liệu.

(Cập nhật:.. Câu trả lời này đã được nhắm mục tiêu một phiên bản cũ của ArangoDB Kể từ phiên bản 2.2, các tính năng này đã được mở rộng và sửa đổi dữ liệu trên cơ sở dữ liệu cũng có thể với AQL Để biết thêm thông tin về điều đó, hãy truy cập vào liên kết tài liệu ở cuối câu trả lời.)

Bạn không thể lưu trữ dữ liệu vào cơ sở dữ liệu bằng AQL.

Ngược lại với AQL, Javascript hoặc MRuby có thể đọc và lưu trữ dữ liệu vào cơ sở dữ liệu. Tuy nhiên khả năng truy vấn của họ là rất cơ bản và hạn chế, so với khả năng mở ra với AQL.

Có thể gửi các truy vấn AQL từ javascript. Trong arangosh Javascript shell bạn sẽ phát hành một truy vấn AQL như thế này:

arangosh> db._query('FOR user IN example FILTER user.age > 30 RETURN user').toArray() 
[ 
    { 
    _id : "4538791/6308263", 
    _rev : "6308263", 
    age : 31, 
    name : "Musterfrau" 
    } 
] 

Bạn có thể tìm thêm thông tin trên AQL đây: http://www.arangodb.org/manuals/current/Aql.html

+1

Cảm ơn! Trong tài liệu được viết: "Bạn có thể chạy truy vấn AQL từ ứng dụng của bạn thông qua API REST HTTP" ... vì vậy, tôi cũng có thể chạy AQL với ví dụ: Curl? – poseid

+1

Chính xác. Trên thực tế, tất cả các trình điều khiển ngôn ngữ đều sử dụng API REST của HTTP. REST API là giao diện của ArangoBD với thế giới. Nếu ví dụ bạn lập trình bằng ngôn ngữ chưa có sẵn trình điều khiển, bạn có thể bắt đầu một dự án viết trình điều khiển của riêng bạn. Đó là tất cả HTTP. – thesilentman

+0

Không chắc chắn về tình trạng của sự vật vào tháng Hai, nhưng với AQL bạn chắc chắn có thể thay đổi và lưu trữ dữ liệu vào cơ sở dữ liệu (ví dụ: https://www.arangodb.com/tutorial-node-js/#aql-update). Nó không quan trọng như thế nào AQL được chạy, nó luôn luôn có khả năng tương tự. – mohamnag

Các vấn đề liên quan