Couch DB クイックスタートガイド
(
Ubuntu 上で 0.9.0 を使ってテスト。私の
ブログの内容を wiki 化したもの。)
ファイルを
ダウンロードして解凍し、該当するディレクトリに移動します。
README を読んで、その中の指示に従います (Ubuntu の場合は、
Debian のところを参照します)。 (Ubuntu) ビルドする前に、必要なライブラリを apt-get で取得しておきます。
コマンドラインから CouchDB を起動し、適切に動作しているかどうかチェックします。
新しくデータベースを作成します。
http://localhost:5984/_utils/ にアクセスします。 "Create Database" をクリックします。
「example」と入力します。
"Hello, World!" を入力してみましょう。
CouchDB は RESTful なので、HTTP クライアントが必要です。以下に示すのは、telnet を使った手順です(コマンドラインで操作するのが好きでない場合には、
Futon を使うことができます)。 $ telnet localhost 5984 と入力します。
次のようなレスポンスが返ってきます。
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
以下の内容をコピー&ペーストします。
PUT /example/some_doc_id HTTP/1.0 Content-Length: 29 Content-Type: application/json {"greetings":"Hello, World!"}次のようなレスポンスが返ってきます。
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.
http://localhost:5984/example/some_doc_id にアクセスすると、次のような内容が表示されます。
{"_id":"some_doc_id","_rev":"1-518824332","greetings":"Hello, World!"}
かいつまんで説明すると…
CouchDB は RESTful なので、ドキュメントを作成するには PUT(上の例の場合)または POST を使います。
CouchDB では JSON API を使います。したがって、ドキュメントは JSON として PUT し、結果は JSON として GET します。
データを表示するには、ビューを使います。
各ドキュメントは一意の "_id" を持ちます。
各ドキュメントは "_rev" によってバージョンが付けられます。
それではリラックスして、ビューを試してみましょう。
(ええと、以下では実際には "show" を使っていますが、だいたい感じはつかんでもらえると思います。)
もう一度、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}}"}}次のようなレスポンスが返ってきます。
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.
http://localhost:5984/example/_design/render/_show/salute/some_doc_id にアクセスします。
どんな処理が行われたのか
"show" は JavaScript を使ってダイレクトにドキュメントを表示します。
"shows" はデザイン・ドキュメント(現在の例では "shows" プロパティを介して "/_design/render")に追加されます。
"body: doc.greetings" はレスポンスのボディに "greetings" プロパティを埋め込みます。
GET _design/render/_show/salute/some_doc_id を実行すると、"salute" show を使って、上で追加された "some_doc_id" が表示されます。