Über die Befehlszeile mit CouchDB arbeiten - so funktioniert´s

Erfahren Sie, wie Sie das Dienstprogramm Curl verwenden können, um mit CouchDB über die Befehlszeile zu arbeiten. Obwohl die Futon Webadmin-Oberfläche eine einfache Möglichkeit ist, einfache Operationen mit CouchDB durchzuführen, ist die API die flexibelste, schnellste und leistungsfähigste Methode, um Standard-CRUD-Operationen (Create, Read, Update, Delete) in CouchDB durchzuführen, sowohl von Hand als auch mit Skripten.

Anforderungen

  • Ein Cloud Server (Ubuntu 16.04) mit installierter CouchDB.

Free Cloud Server Trial von IONOS

Jetzt Cloud Server kostenlos testen - Probieren Sie Ihren Cloud Server bei IONOS 30 Tage lang aus!

REST API
Unlimited Traffic
VMware Virtualisierung

Die Grundlagen der Arbeit mit CouchDB

Nachdem Sie CouchDB installiert haben, können Sie über HTTP auf Port 5984 mit Hilfe von Standard-GET- und PUT-Anfragen auf die API zugreifen.

Von der Befehlszeile aus können Sie Curl verwenden, um diese Anfragen zu stellen.

Du kannst dies mit dem Befehl testen:

curl http://127.0.0.1:5984/

Der Server antwortet mit einer Willkommensmeldung:

{"couchdb":"Welcome","uuid":"f33e87d034bb8c1227f866445a977555","version":"1.6.1","vendor":{"version":"16.04","name":"Ubuntu"}}

Verwenden Sie das Flag -X, um eine Methode (wie GET oder PUT) für Curl anzugeben. Zum Beispiel ist der Befehl, eine Liste aller Datenbanken in der CouchDB-Installation zu erhalten:

curl -X GET http://127.0.0.1:5984/_all_dbs

Eine Datenbank oder ein Dokument erstellen

Verwenden Sie die Methode PUT, um eine Datenbank oder ein Dokument (Datensatz) zu erstellen. Um beispielsweise eine Datenbank mit dem Namen reviews zu erstellen, lautet der Befehl:

curl -X PUT http://127.0.0.1:5984/reviews

Um ein Dokument zur Datenbank hinzuzufügen, verwenden Sie curl -X PUT mit dem Namen Ihrer Datenbank und der eindeutigen ID des Datensatzes, den Sie erstellen möchten, und verwenden Sie dann -d, um die Informationen des Datensatzes im JSON-Format weiterzugeben.

Mit dem folgenden Befehl wird beispielsweise ein Datensatz mit der ID 01 in die Überprüfungsdatenbank eingefügt:

curl -X PUT http://127.0.0.1:5984/reviews/01 -d '{"reviewer_name":"Ben", "stars":"4", "details":"Love the calzone!"}'

Informationen über eine Datenbank oder ein Dokument abrufen

Verwenden Sie die GET-Methode, um Informationen über eine Datenbank oder ein Dokument abzurufen und zu lesen. Um ein Dokument zu erhalten, geben Sie die ID des Dokuments am Ende der URL an.

Der Befehl zum Abrufen des Datensatzes, den wir im obigen Beispiel eingefügt haben, lautet beispielsweise:

curl -X GET http://127.0.0.1:5984/reviews/01

Der Server antwortet mit dem Inhalt des Dokuments im JSON-Format:

{
"_id":"01",
"_rev":"1-8ce1d23b7455705c3c2cbeeb86d8ccf5",
"reviewer_name":"Ben",
"stars":"4",
"details":"Love the calzone!"
}

Ein Dokument aktualisieren

CouchDB verfügt über eine automatische Änderungsverfolgung und -kontrolle. Im obigen Beispiel ist zu beachten, dass es ein _rev-Feld mit einer Revisionsnummer gibt, obwohl wir das in unserer ursprünglichen PUT-Anfrage nicht eingefügt haben. Dieses Feld für die Revisionsnummer wird automatisch erstellt, wenn Sie einen Datensatz einfügen.

Um ein Dokument zu aktualisieren, müssen Sie CouchDB mitteilen, welche Revision Sie aktualisieren. Wenn die Revisionsnummer übereinstimmt, aktualisiert CouchDB die Informationen und generiert eine neue Revisionsnummer. (Wenn die Revisionsnummer nicht übereinstimmt, gibt CouchDB einen 409 Konfliktfehler zurück.)

Um ein Dokument zu aktualisieren, verwenden Sie die PUT-Methode und geben Sie die Revisionsnummer an. Sie können entweder das gesamte Dokument oder nur ein einzelnes Feld aktualisieren.

In diesem Beispiel werden wir die Anzahl der Sterne in der Bewertung von 4 auf 5 aktualisieren:

curl -X PUT http://127.0.0.1:5984/reviews/01 -d '{"_id":"01", "stars":"5", "_rev":"1-8ce1d23b7455705c3c2cbeeb86d8ccf5"}'

Der Server gibt eine Antwort zurück, die "ok" und die neue Revisionsnummer enthält:

{"ok":true,"id":"01","rev":"2-55b1c6edb9a0fd8eb58bd73b8e0058d5"}

Einen Datensatz löschen

Um einen Datensatz zu löschen, verwenden Sie die Methode DELETE und geben Sie die ID des Datensatzes und die aktuellste Revisionsnummer an. Zum Beispiel ist der Befehl zum Löschen des oben erstellten Datensatzes:

curl -X DELETE http://127.0.0.1:5984/reviews/01?rev=2-55b1c6edb9a0fd8eb58bd73b8e0058d5

Der Server gibt eine Antwort zurück, die "ok" und die neue Revisionsnummer enthält:

{"ok":true,"id":"01","rev":"3-ec3f3491444854d08aaa7dd6ffe68670"}

Denn um die Replikationsfunktionen von CouchDB zu erhalten, werden Datensätze nicht tatsächlich gelöscht. Stattdessen wird eine Revision hinzugefügt, die Informationen über das Löschen enthält, und der Datensatz ist mit einer Standardanforderung nicht zugänglich.

Wenn wir beispielsweise versuchen, diesen Datensatz erneut anzuzeigen, antwortet der Server mit "nicht gefunden":

user@localhost:$ curl -X GET http://127.0.0.1:5984/reviews/01
{"error":"not_found","reason":"deleted"}