Berikut langkah-langkah yang lebih terstruktur untuk mengatur ArangoDB dan menjalankan query di dalamnya:
- Unduh dan instalasi Docker Desktop dari situs resminya.
- Pastikan Docker Desktop telah terinstal dan berjalan di sistem Teman-teman.
docker run -p 8529:8529 -e ARANGO_ROOT_PASSWORD=openSesame arangodb/enterprise:3.12.0.2
Ini menjalankan container ArangoDB Enterprise versi 3.12.0.2 dengan mengikuti parameter yang ditentukan.
- Buka Docker Desktop.
- Klik pada container ArangoDB yang sedang berjalan.
- Akses melalui link yang tersedia untuk mengelola ArangoDB di localhost.
Setelah terhubung ke ArangoDB melalui browser, masukkan kredensial pengguna dan kata sandi.
- User: root
- Password: openSesame
- File scores.json dapat diunduh disini
- File Person.csv, Order.json, dan KnowsGraph.csv dapat diunduh disini
- Unduh dan simpan file-file tersebut.
- Masukkan file-file tersebut ke dalam folder usr di dalam image container ArangoDB.
- Baca dokumentasi untuk mengetahui cara menambahkan file ke dalam container ArangoDB.
usr/bin/arangoimport --file usr/scores.json --collection "scores" --server.username root --create-collection true
usr/bin/arangoimport --file usr/Person.csv --type csv --translate "id=_key" --collection "Person" --server.username root --create-collection true
usr/bin/arangoimport --file usr/Order.json --type json --translate "id=_key" --collection "Order" --server.username root --create-collection true
usr/bin/arangoimport --file usr/KnowsGraph.csv --type csv --translate "from=_from" --translate "to=_to" --collection "KnowsGraph" --from-collection-prefix Person --to-collection-prefix Person --server.username root --create-collection true --create-collection-type edge
Perintah ini akan mengimpor data dari file ke dalam koleksi yang sesuai di dalam database ArangoDB.
- Buka server ArangoDB melalui browser.
- Masuk ke bagian query untuk menjalankan query yang diberikan.
- Jalankan beberapa query yang terdapat pada link ini
- Untuk soal nomor terakhir, berikut adalah query yang dapat Teman-teman jalankan:
- Q1
Let plist= Flatten(For order in Order return order.Orderline[*].productId) For item in plist collect productId=item with count into ct sort ct DESC LIMIT 10 return {productId, ct}
- Q2
Return SUM( For person in Person For order in Order Filter person._key==order.PersonId and person.gender=='female' and order.OrderDate> '2008' return order.TotalPrice)
- Q3
Return count( For person in Any 'Person/2199023262543' KnowsGraph For order in Order Filter person._key==order.PersonId and order.OrderDate > '2009' return order._key)
- Q4
LET shortestPath= (FOR vertex, edge IN ANY SHORTEST_PATH 'Person/2199023259756' TO 'Person/26388279077535' KnowsGraph return vertex) LET plist= Flatten( For item in shortestPath For order in Order Filter item._key==order.PersonId return order.Orderline ) For item in plist collect productId=item.productId with count into ct Sort ct DESC limit 5 return {productId, ct}
- Q5
Let plist=( For order in Order collect PersonId=order.PersonId into group sort SUM(group[*].order.TotalPrice) DESC LIMIT 2 return {PersonId, Monetary:SUM(group[*].order.TotalPrice)} ) Let set1=( For vertex in 0..3 outbound CONCAT("Person/", plist[0].PersonId) KnowsGraph OPTIONS{ bfs: TRUE} return vertex ) Let set2=( For vertex in 0..3 outbound CONCAT("Person/", plist[1].PersonId) KnowsGraph OPTIONS{bfs: TRUE} return vertex ) return count(intersection(set1,set2))
Teman-teman dapat menyalin dan menjalankan masing-masing query pada editor query di ArangoDB untuk mendapatkan hasilnya. Pastikan Teman-teman memahami tujuan dan output yang diharapkan dari setiap query sebelum menjalankannya. Teman-teman dapat mempelajari dokumentasinya di link ini