ArangoDB - Crud Operations
W tym rozdziale poznamy różne operacje z Arangoshem.
Oto możliwe operacje z Arangoshem -
- Tworzenie kolekcji dokumentów
- Tworzenie dokumentów
- Czytanie dokumentów
- Aktualizacja dokumentów
Zacznijmy od stworzenia nowej bazy danych. Użyjemy następującego wiersza kodu, aby utworzyć nową bazę danych -
127.0.0.1:8529@_system> db._createDatabase("song_collection")
true
Poniższy wiersz kodu pomoże Ci przejść do nowej bazy danych -
127.0.0.1:8529@_system> db._useDatabase("song_collection")
true
Monit zmieni się na „@@ song_collection”
127.0.0.1:8529@song_collection>

Stąd będziemy studiować operacje CRUD. Stwórzmy kolekcję w nowej bazie danych -
127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')
Wynik
[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>
Dodajmy kilka dokumentów (obiektów JSON) do naszej kolekcji „piosenek”.
Dodajemy pierwszy dokument w następujący sposób -
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"})
Wynik
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVClbW---"
}
Dodajmy inne dokumenty do bazy danych. Pomoże nam to poznać proces odpytywania danych. Możesz skopiować te kody i wkleić to samo w Arangosh, aby emulować proces -
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---"
}
Jak czytać dokumenty
Plik _keylub uchwyt dokumentu może służyć do pobierania dokumentu. Użyj uchwytu dokumentu, jeśli nie ma potrzeby przechodzenia przez samą kolekcję. Jeśli masz kolekcję, funkcja dokumentu jest łatwa w użyciu -
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
}
Jak zaktualizować dokumenty
Dostępne są dwie opcje aktualizacji zapisanych danych - replace i update.
Funkcja aktualizacji łata dokument, scalając go z zadanymi atrybutami. Z drugiej strony funkcja zamiany zastąpi poprzedni dokument nowym. Zastąpienie będzie nadal występować, nawet jeśli zostaną dostarczone zupełnie inne atrybuty. Najpierw zaobserwujemy nieniszczącą aktualizację, aktualizującą atrybut Production` w utworze -
127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});
Wynik
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVOcqe---",
"_oldRev" : "_VjVClbW---"
}
Przeczytajmy teraz atrybuty zaktualizowanego utworu -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Wynik
{
"_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"
}
Duży dokument można łatwo zaktualizować za pomocą rozszerzenia update funkcji, zwłaszcza gdy atrybutów jest bardzo niewiele.
W przeciwieństwie do replace funkcja usunie Twoje dane podczas używania go z tym samym dokumentem.
127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});
Sprawdźmy teraz piosenkę, którą właśnie zaktualizowaliśmy, za pomocą następującego wiersza kodu -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Wynik
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVRhOq---",
"production" : "Top Banana"
}
Teraz możesz zauważyć, że dokument nie zawiera już oryginalnych danych.
Jak usunąć dokumenty
Funkcja usuwania jest używana w połączeniu z uchwytem dokumentu do usuwania dokumentu z kolekcji -
127.0.0.1:8529@song_collection> db.songs.remove('A_Man');
Sprawdźmy teraz atrybuty utworu, który właśnie usunęliśmy, używając następującego wiersza kodu -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Otrzymamy na wyjściu błąd wyjątku podobny do następującego:
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
