Dieses Tutorial bietet eine praktische Anleitung zur Verwendung von CouchDB, einer NoSQL -Datenbank, über seine HTTP -API mit PHP. Wir werden die theoretischen Aspekte überspringen und direkt in die Durchführung von Datenbankvorgängen eintauchen. Wir gehen davon aus, dass Sie CouchDB und Futon (seine Webadministratorkonsole) bereits eingerichtet haben.
Hinweis: Wir verwenden den Einfachheit halber localhost
. Wenn Sie ein VM verwenden, passen Sie entsprechend an (z. B. Verwendung eines benutzerdefinierten Vhost- und weitergeleiteten Ports).
Schlüsselkonzepte:
Erstellen einer Datenbank:
Verwenden Sie Futon ( https://www.php.cn/link/3bbbc60ff463969b78a091ff51AC6566 ), um eine Datenbank zu erstellen. Geben Sie ihm einen Namen (z. B. test_couch
).
Nach der Erstellung sehen Sie eine Schnittstelle zum Hinzufügen von Dokumenten. Denken Sie daran, dass Dokumente in CouchDB die grundlegende Einheit sind. Es gibt keine Tische. Sie können verschiedene Datenstrukturen in derselben Datenbank speichern. Für die Organisation geben Sie ein type
-Feld ein, um Dokumente zu kategorisieren (z. B. "type": "users"
).
Beispieldokumentstrukturen:
{"id": 123, "fname": "doppo", "lname": "kunikida", "pw": "secret", "hobbies": ["reading", "sleeping"], "type": "users"}
{"title": "The big brown fox", "author": "fox", "text": "...", "publish_date": "2016-07-07", "type": "blog_posts"}
HTTP -API -Wechselwirkung:
Sie können curl
oder Tools wie Postman verwenden, um direkt mit der CouchDB HTTP -API zu interagieren.
curl -X PUT http://localhost:5984/<database_name></database_name>
(Rückgabe {"ok":true}
) http://localhost:5984/test_couch
, mit Content-Type: application/json
und Ihrem JSON -Dokument im Körper.
Bulk Insert:
Verwenden Sie eine Postanforderung an http://localhost:5984/test_couch/_bulk_docs
mit einer Reihe von Dokumenten in der JSON -Körperschaft.
Abzüge Dokumente:
http://localhost:5984/test_couch/_all_docs?include_docs=true
http://localhost:5984/test_couch/<document_id>?include_docs=true</document_id>
&rev=<revision_id></revision_id>
zur URL oben hinzufügen. CouchDB verfolgt Revisionen; Jedes Update erstellt eine neue Revision. Futon ermöglicht das Durchsuchen dieser Überarbeitungen.
Ansichten (MapReduce):
Ansichten bieten Abfragemöglichkeiten. Erstellen Sie Ansichten in Futon mit MAP und reduzieren Sie Funktionen (JavaScript). Diese Funktionen werden in Entwurfsdokumenten gespeichert.
function(doc) { emit(doc.trainer, doc.name); }
Zugriffsansichten über URLs wie: http://localhost:5984/test_couch/_design/<design_doc>/_view/<view_name>?key="Ash"
Aktualisieren von Dokumenten:
Senden Sie eine Put -Anfrage an die Dokument -URL, einschließlich des Feldes _rev
mit der neuesten Revisions -ID. Sie müssen das gesamte aktualisierte Dokument bereitstellen.
Dokumente löschen:
Senden Sie eine Löschanforderung an die Dokument -URL, einschließlich des Felds _rev
mit der neuesten Revisions -ID.
http://localhost:5984/test_couch/<document_id>?rev=<revision_id>
PHP -Integration (Guzzle):
guzzle vereinfacht HTTP -Anforderungen in PHP. Die folgenden Beispiele zeigen grundlegende Vorgänge: (Denken Sie daran, Guzzle zu installieren: composer require guzzlehttp/guzzle
)
<?php require 'vendor/autoload.php'; use GuzzleHttp\Client; $client = new Client(['base_uri' => 'http://localhost:5984']); // ... (GET, POST, PUT, DELETE examples using Guzzle similar to the curl and Postman examples above) ... ?>
PHP -Integration (Doktrin -Couchdb -Client):
Der CouchDB-Client von Doctrine bietet eine höhere Abstraktion. (Installieren Sie mit: composer require doctrine/couchdb
)
<?php require 'vendor/autoload.php'; $client = \Doctrine\CouchDB\CouchDBClient::create(['dbname' => 'test_couch']); // ... (Examples for creating, retrieving, updating, and deleting documents using the Doctrine client) ... ?>
Schlussfolgerung:
Dieses Tutorial bietet eine praktische Einführung in CouchDB mit seiner HTTP -API und PHP. Erkunden Sie die offizielle Dokumentation und den endgültigen Leitfaden für fortgeschrittenere Funktionen. Zukünftige Beiträge werden tiefer in die Erstellung von Anwendungen mit CouchDB eingehen.
Das obige ist der detaillierte Inhalt vonEin Pokemon -Crashkurs auf CouchDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!