LoginSignup
3
1

More than 3 years have passed since last update.

CouchDBのAPI入門

Posted at

CouchDBの操作やクエリに使用するAPIについてイメージを掴むためいくつかまとめ
公式ドキュメントにけっこう詳細に記載されてます。

検索はHTTPメソッドで行う

CouchDB内のURIは
severName/databaseName/documentName
であり階層ごとにAPIが用意されている。

各階層ごとのAPIの例

サーバー

ホストにあるCouchDBサーバの情報取ってくる

GET /
Accept: application/json
Host x.x.x.x:port
→ res サーバ情報

サーバ内のすべてのデータベース情報取ってくる

GET / _all_dbs
Accept: application/json
Host x.x.x.x:port
→ res サーバ内の全てのデータベース

キーで該当のデータベース取ってくる

POST /_dbs_info
Accept: application/json
Host x.x.x.x:port
Content-Type: application/json 

{
    "keys": [
        "countries",
        "planets"
    ]
}

→ res keysで指定されたデータベースの情報

データベース

GET /{データベース名}
→ res 指定したデータベースの情報

新しいデータベース作る

POST /{データベース名}
→ res データベース情報

すべてのデータベースのクエリ

GET /{データベース名}/_all_docs
→ res 指定したデータベース内にある全てのドキュメントの情報

データベースの条件検索

POST /{データベース名}/_find
req
{
    "selector": {
        "year": {"$gt": 2010}
    },
    "fields": ["_id", "_rev", "year", "title"],
    "sort": [{"year": "asc"}],
    "limit": 2,
    "skip": 0,
    "execution_stats": true
}
→res 該当ドキュメントの情報

selector(json)・・・どのドキュメントを取ってくるのかの条件付
fields(array)・・・該当ドキュメントのどの情報を取ってくるかの条件付
sort(json)・・・ソートの条件
limit(num)・・・何件までとってくるか、デフォルトだと25件
skip(num)・・・最初の何件を飛ばすか、デフォルトは0
execution_stats(bool)・・・検索の際のログのようなものを返すか、デフォルトだとfalse

ドキュメント

GET/{データベース名}/{ドキュメントID}
→ res 該当ドキュメントの情報

新しくドキュメント作る

POST/{データベース名}/{ドキュメントID}
→ res ドキュメント情報

終わり

公式ドキュメントにAPIが載ってる。
https://docs.couchdb.org/en/2.2.0/api/document/common.html

APIが豊富で結構柔軟にいろいろな操作ができそう。

前回の記事
1分でCouchDBまとめ

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1