ArangoDB - Grobe Operationen
In diesem Kapitel lernen wir die verschiedenen Operationen mit Arangosh kennen.
Das Folgende sind die möglichen Operationen mit Arangosh -
- Dokumentensammlung erstellen
- Dokumente erstellen
- Dokumente lesen
- Dokumente aktualisieren
Beginnen wir mit der Erstellung einer neuen Datenbank. Wir werden die folgende Codezeile verwenden, um eine neue Datenbank zu erstellen -
127.0.0.1:8529@_system> db._createDatabase("song_collection")
true
Die folgende Codezeile hilft Ihnen beim Wechsel zur neuen Datenbank:
127.0.0.1:8529@_system> db._useDatabase("song_collection")
true
Die Eingabeaufforderung wechselt zu "@@ song_collection".
127.0.0.1:8529@song_collection>
Von hier aus werden wir CRUD Operations studieren. Lassen Sie uns eine Sammlung in der neuen Datenbank erstellen -
127.0.0.1:8529@song_collection> db._createDocumentCollection('songs')
Ausgabe
[ArangoCollection 4890, "songs" (type document, status loaded)]
127.0.0.1:8529@song_collection>
Fügen wir unserer 'Songs'-Sammlung einige Dokumente (JSON-Objekte) hinzu.
Wir fügen das erste Dokument folgendermaßen hinzu:
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"})
Ausgabe
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVClbW---"
}
Fügen wir der Datenbank weitere Dokumente hinzu. Dies wird uns helfen, den Prozess der Abfrage der Daten zu lernen. Sie können diese Codes kopieren und in Arangosh einfügen, um den Prozess zu emulieren.
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---"
}
Lesen von Dokumenten
Das _keyoder das Dokumenthandle kann zum Abrufen eines Dokuments verwendet werden. Verwenden Sie das Dokumenthandle, wenn die Sammlung selbst nicht durchlaufen werden muss. Wenn Sie eine Sammlung haben, ist die Dokumentfunktion einfach zu verwenden -
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
}
So aktualisieren Sie Dokumente
Zum Aktualisieren der gespeicherten Daten stehen zwei Optionen zur Verfügung: replace und update.
Die Aktualisierungsfunktion patcht ein Dokument und führt es mit den angegebenen Attributen zusammen. Andererseits ersetzt die Ersetzungsfunktion das vorherige Dokument durch ein neues. Der Austausch erfolgt auch dann, wenn völlig andere Attribute angegeben werden. Wir werden zuerst ein zerstörungsfreies Update beobachten, bei dem das Attribut Production` in einem Song aktualisiert wird -
127.0.0.1:8529@song_collection> db.songs.update("songs/A_Man",{production:
"Top Banana"});
Ausgabe
{
"_id" : "songs/A_Man",
"_key" : "A_Man",
"_rev" : "_VjVOcqe---",
"_oldRev" : "_VjVClbW---"
}
Lassen Sie uns nun die Attribute des aktualisierten Songs lesen -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Ausgabe
{
"_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"
}
Ein großes Dokument kann einfach mit dem aktualisiert werden update Funktion, insbesondere wenn die Attribute sehr wenige sind.
Im Gegensatz dazu ist die replace Durch die Funktion werden Ihre Daten bei Verwendung mit demselben Dokument abgeschafft.
127.0.0.1:8529@song_collection> db.songs.replace("songs/A_Man",{production:
"Top Banana"});
Lassen Sie uns nun das Lied überprüfen, das wir gerade mit der folgenden Codezeile aktualisiert haben -
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Ausgabe
{
"_key" : "A_Man",
"_id" : "songs/A_Man",
"_rev" : "_VjVRhOq---",
"production" : "Top Banana"
}
Jetzt können Sie feststellen, dass das Dokument nicht mehr die Originaldaten enthält.
So entfernen Sie Dokumente
Die Entfernungsfunktion wird in Kombination mit dem Dokumenthandle verwendet, um ein Dokument aus einer Sammlung zu entfernen.
127.0.0.1:8529@song_collection> db.songs.remove('A_Man');
Lassen Sie uns nun die Attribute des Songs, die wir gerade entfernt haben, mithilfe der folgenden Codezeile überprüfen:
127.0.0.1:8529@song_collection> db.songs.document('A_Man');
Als Ausgabe erhalten wir einen Ausnahmefehler wie den folgenden:
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