カウチに座って 15 分で学ぶ CouchDB

Couch DB クイックスタートガイド

[WWW] Ubuntu 上で 0.9.0 を使ってテスト。私の [WWW] ブログの内容を wiki 化したもの。)

ファイルを[WWW] ダウンロードして解凍し、該当するディレクトリに移動します。

  1. README を読んで、その中の指示に従います (Ubuntu の場合は、[WWW] Debian のところを参照します)。

  2. (Ubuntu) ビルドする前に、必要なライブラリを apt-get で取得しておきます。

  3. コマンドラインから CouchDB を起動し、適切に動作しているかどうかチェックします。

新しくデータベースを作成します。

  1. [WWW] http://localhost:5984/_utils/ にアクセスします。

  2. "Create Database" をクリックします。

  3. 「example」と入力します。

"Hello, World!" を入力してみましょう。

  1. CouchDB は RESTful なので、HTTP クライアントが必要です。以下に示すのは、telnet を使った手順です(コマンドラインで操作するのが好きでない場合には、[WWW] Futon を使うことができます)。

  2. $ telnet localhost 5984 と入力します。

  3. 次のようなレスポンスが返ってきます。

    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
  4. 以下の内容をコピー&ペーストします。

    PUT /example/some_doc_id HTTP/1.0
    Content-Length: 29
    Content-Type: application/json
    
    {"greetings":"Hello, World!"} 
  5. 次のようなレスポンスが返ってきます。

    HTTP/1.0 201 Created
    Server: CouchDB/0.9.0 (Erlang OTP/R12B)
    Etag: "1-518824332"
    Date: Wed, 24 Jun 2009 13:33:11 GMT
    Content-Type: text/plain;charset=utf-8
    Content-Length: 51
    Cache-Control: must-revalidate
    
    {"ok":true,"id":"some_doc_id","rev":"1-518824332"}
    Connection closed by foreign host.
  6. [WWW] http://localhost:5984/example/some_doc_id にアクセスすると、次のような内容が表示されます。

    {"_id":"some_doc_id","_rev":"1-518824332","greetings":"Hello, World!"} 

かいつまんで説明すると…

  1. CouchDB は RESTful なので、ドキュメントを作成するには PUT(上の例の場合)または POST を使います。

  2. CouchDB では JSON API を使います。したがって、ドキュメントは JSON として PUT し、結果は JSON として GET します。

  3. データを表示するには、ビューを使います。

  4. 各ドキュメントは一意の "_id" を持ちます。

  5. 各ドキュメントは "_rev" によってバージョンが付けられます。

それではリラックスして、ビューを試してみましょう。

  1. (ええと、以下では実際には "show" を使っていますが、だいたい感じはつかんでもらえると思います。)

  2. もう一度、telnet でアクセスします。

    $ telnet localhost 5984
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    PUT /example/_design/render HTTP/1.0
    Content-Length: 79
    Content-Type: application/json
    
    {"shows" : {"salute" : "function(doc, req) {return {body: doc.greetings}}"}} 
  3. 次のようなレスポンスが返ってきます。

    HTTP/1.0 201 Created
    Server: CouchDB/0.9.0 (Erlang OTP/R12B)
    Etag: "1-2041852709"
    Date: Wed, 01 Jul 2009 06:08:59 GMT
    Content-Type: text/plain;charset=utf-8
    Content-Length: 55
    Cache-Control: must-revalidate
    
    {"ok":true,"id":"_design/render","rev":"1-2041852709"}
    Connection closed by foreign host. 
  4. [WWW] http://localhost:5984/example/_design/render/_show/salute/some_doc_id にアクセスします。

どんな処理が行われたのか

  1. "show" は JavaScript を使ってダイレクトにドキュメントを表示します。

  2. "shows" はデザイン・ドキュメント(現在の例では "shows" プロパティを介して "/_design/render")に追加されます。

  3. "body: doc.greetings" はレスポンスのボディに "greetings" プロパティを埋め込みます。

  4. GET _design/render/_show/salute/some_doc_id を実行すると、"salute" show を使って、上で追加された "some_doc_id" が表示されます。

last edited 2009-07-08 08:28:45 by MartinWerthmoeller