ホームページ >バックエンド開発 >PHPチュートリアル >CouchDBのポケモンクラッシュコース

CouchDBのポケモンクラッシュコース

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-14 08:30:12620ブラウズ

このチュートリアルは、PHPを備えたHTTP APIを介して、NOSQLデータベースであるCouchDBを使用するための実用的なガイドを提供します。 理論的側面をスキップし、実行するデータベース操作に直接飛び込みます。 couchdbとfuton(そのWeb管理コンソール)が既にセットアップされていると思います。

A Pokemon Crash Course on CouchDB

注:簡単にするために

を使用します。 VMを使用している場合は、それに応じて調整します(たとえば、カスタムVHOSTおよび転送されたポートを使用して)。 localhost重要な概念:

couchdbの基本:

a nosqlデータベースをストレージ用にjson、javascript for queries、およびhttp api。
    を使用しています。
  • ドキュメント構造:データは個々のJSONドキュメントに保存されています。固定されたスキーマまたは表はありません。
  • http API:httpリクエスト(get、post、put、削除)を使用して、データベースと対話します。
  • PHP統合:GuzzleとDoctrineのCouchDBクライアントを使用してデモを行います。
  • 高度な機能(簡単に言及されています):
  • MapReduce、競合解決、変更フィード
  • データベースの作成:
  • https://www.php.cn/link/link/3bbc60ff463969b78a091ff51ac6566
  • )を使用してデータベースを作成します。 名前を付けてください(例:
)。

作成後、ドキュメントを追加するインターフェイスが表示されます。 CouchDBでは、文書が基本単位であることを忘れないでください。テーブルはありません。 同じデータベース内に異なるデータ構造を保存できます。 組織については、ドキュメントを分類するためのA フィールドを含めます(例えば、)。 test_couch

ドキュメント構造の例:

A Pokemon Crash Course on CouchDB

typeユーザー:"type": "users"

ブログ投稿:

  • {"id": 123, "fname": "doppo", "lname": "kunikida", "pw": "secret", "hobbies": ["reading", "sleeping"], "type": "users"}http APIインタラクション:
  • またはPostmanのようなツールを使用して、couchdb http apiと直接対話できます。 {"title": "The big brown fox", "author": "fox", "text": "...", "publish_date": "2016-07-07", "type": "blog_posts"}
  • データベースの作成(curl):

(returns

create document(postman):curl

に投稿リクエストを送信し、
    とjsonドキュメントを体内に送信します。
  • curl -X PUT http://localhost:5984/<database_name></database_name> {"ok":true}
  • バルク挿入:
  • jsonボディに一連のドキュメントを使用してhttp://localhost:5984/test_couch/_bulk_docsへの投稿リクエストを使用してください。

    A Pokemon Crash Course on CouchDB

    ドキュメントの取得:

    • すべてのドキュメント: http://localhost:5984/test_couch/_all_docs?include_docs=true
    • 具体的なドキュメント: http://localhost:5984/test_couch/<document_id>?include_docs=true</document_id>
    • 特定の改訂:上記のURLにを追加します &rev=<revision_id></revision_id>
    • couchdbはリビジョンを追跡します。各更新により、新しい改訂が作成されます。 布団により、これらの改訂版を閲覧できます

    A Pokemon Crash Course on CouchDB ビュー(mapReduce):

    ビューはクエリ機能を提供します。 MAPを使用して布団でビューを作成し、機能を低減します(JavaScript)。 これらの関数は、設計ドキュメント内に保存されます。

    A Pokemon Crash Course on CouchDB

    の例マップ関数(トレーナーによるフィルター):
    <code class="language-javascript">function(doc) {
      emit(doc.trainer, doc.name);
    }</code>
    のようなURLを介したアクセスビュー

    http://localhost:5984/test_couch/_design/<design_doc>/_view/<view_name>?key="Ash"</view_name></design_doc>ドキュメントの更新:

    最新の改訂IDを備えたフィールドを含むドキュメントURLにプットリクエストを送信します。 更新されたドキュメント全体を提供する必要があります。

    _rev

    A Pokemon Crash Course on CouchDB ドキュメントの削除:

    最新の改訂IDを備えたフィールドを含むドキュメントURLに削除リクエストを送信します。

    _rev

    PHP統合(Guzzle):http://localhost:5984/test_couch/<document_id>?rev=<revision_id></revision_id></document_id>

    Guzzleは、PHPでHTTPリクエストを簡素化します。 次の例は、基本操作を示しています。(guzzleをインストールすることを忘れないでください:

    composer require guzzlehttp/guzzlePHP統合(Doctrine CouchDBクライアント):

    <code class="language-php"><?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) ...
    ?></code>

    DoctrineのCouchDBクライアントは、より高いレベルの抽象化を提供します。 (インストール:

    composer require doctrine/couchdb結論:

    <code class="language-php"><?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) ...
    ?></code>
    このチュートリアルは、HTTP APIとPHPを使用してCouchDBの実用的な紹介を提供します。 より高度な機能については、公式ドキュメントと決定的なガイドを調べてください。 将来の投稿は、couchdbを使用してアプリケーションの構築をより深く掘り下げます。

以上がCouchDBのポケモンクラッシュコースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。