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