ArangoDB - Operasi Crud
Dalam bab ini, kita akan mempelajari berbagai operasi dengan Arangosh.
Berikut ini adalah kemungkinan operasi dengan Arangosh -
- Membuat Koleksi Dokumen
- Membuat Dokumen
- Membaca Dokumen
- Memperbarui Dokumen
Mari kita mulai dengan membuat database baru. Kami akan menggunakan baris kode berikut untuk membuat database baru -
127.0.0.1:8529@_system> db._createDatabase("song_collection")
true
Baris kode berikut akan membantu Anda beralih ke database baru -
127.0.0.1:8529@_system> db._useDatabase("song_collection")
true
Perintah akan bergeser ke "@@ song_collection"
127.0.0.1:8529@song_collection>
Dari sini kita akan mempelajari Operasi CRUD. Mari kita buat koleksi ke dalam database baru -
127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')
Keluaran
[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>
Mari kita tambahkan beberapa dokumen (objek JSON) ke koleksi 'lagu' kita.
Kami menambahkan dokumen pertama dengan cara berikut -
127.0.0.1:8529@song_collection> db.songs.save({title: "A Man's Best Friend",
lyricist: "Johnny Mercer", composer: "Johnny Mercer", Year: 1950, _key:
"A_Man"})
Keluaran
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVClbW---"
}
Mari kita tambahkan dokumen lain ke database. Ini akan membantu kami mempelajari proses kueri data. Anda dapat menyalin kode-kode ini dan menempelkannya di Arangosh untuk meniru prosesnya -
127.0.0.1:8529@song_collection> db.songs.save(
{
title: "Accentchuate The Politics",
lyricist: "Johnny Mercer",
composer: "Harold Arlen", Year: 1944,
_key: "Accentchuate_The"
}
)
{
"_id" : "songs/Accentchuate_The",
"_key" : "Accentchuate_The",
"_rev" : "_VjVDnzO---"
}
127.0.0.1:8529@song_collection> db.songs.save(
{
title: "Affable Balding Me",
lyricist: "Johnny Mercer",
composer: "Robert Emmett Dolan",
Year: 1950,
_key: "Affable_Balding"
}
)
{
"_id" : "songs/Affable_Balding",
"_key" : "Affable_Balding",
"_rev" : "_VjVEFMm---"
}
Bagaimana Membaca Dokumen
Itu _keyatau pegangan dokumen dapat digunakan untuk mengambil dokumen. Gunakan pegangan dokumen jika tidak perlu melintasi koleksi itu sendiri. Jika Anda memiliki koleksi, fungsi dokumen mudah digunakan -
127.0.0.1:8529@song_collection> db.songs.document("A_Man");
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVClbW---",
"title" : "A Man's Best Friend",
"lyricist" : "Johnny Mercer",
"composer" : "Johnny Mercer",
"Year" : 1950
}
Cara Memperbarui Dokumen
Tersedia dua opsi untuk memperbarui data yang disimpan - replace dan update.
Fungsi update menambal dokumen, menggabungkannya dengan atribut yang diberikan. Di sisi lain, fungsi replace akan menggantikan dokumen sebelumnya dengan yang baru. Penggantian akan tetap terjadi meskipun atribut yang sama sekali berbeda disediakan. Pertama-tama kita akan mengamati pembaruan non-destruktif, memperbarui atribut Production` dalam sebuah lagu -
127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});
Keluaran
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVOcqe---",
"_oldRev" : "_VjVClbW---"
}
Mari kita sekarang membaca atribut lagu yang diperbarui -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Keluaran
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVOcqe---",
"title" : "A Man's Best Friend",
"lyricist" : "Johnny Mercer",
"composer" : "Johnny Mercer",
"Year" : 1950,
"production" : "Top Banana"
}
Dokumen besar dapat dengan mudah diperbarui dengan update berfungsi, terutama bila atributnya sangat sedikit.
Sebaliknya, file replace fungsi akan menghapus data Anda saat menggunakannya dengan dokumen yang sama.
127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});
Sekarang mari kita periksa lagu yang baru saja kita perbarui dengan baris kode berikut -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Keluaran
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVRhOq---",
"production" : "Top Banana"
}
Sekarang, Anda dapat mengamati bahwa dokumen tersebut tidak lagi memiliki data asli.
Cara Menghapus Dokumen
Fungsi hapus digunakan dalam kombinasi dengan pegangan dokumen untuk menghapus dokumen dari koleksi -
127.0.0.1:8529@song_collection> db.songs.remove('A_Man');
Sekarang mari kita periksa atribut lagu yang baru saja kita hapus dengan menggunakan baris kode berikut -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Kami akan mendapatkan kesalahan pengecualian seperti berikut sebagai output -
JavaScript exception in file
'/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js' at 97,7:
ArangoError 1202: document not found
! throw error;
! ^
stacktrace: ArangoError: document not found
at Object.exports.checkRequestResult
(/usr/share/arangodb3/js/client/modules/@arangodb/arangosh.js:95:21)
at ArangoCollection.document
(/usr/share/arangodb3/js/client/modules/@arangodb/arango-collection.js:667:12)
at <shell command>:1:10