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まとめ