- 2. JSON Structure Reference
- 2.1. All Database Documents
- 2.2. Bulk Document Response
- 2.3. Bulk Documents
- 2.4. Changes information for a database
- 2.5. CouchDB Document
- 2.6. CouchDB Error Status
- 2.7. CouchDB database information object
- 2.8. Design Document
- 2.9. Design Document Information
- 2.10. Document with Attachments
- 2.11. List of Active Tasks
- 2.12. Replication Settings
- 2.13. Replication Status
- 2.14. Request object
- 2.15. Request2 object
- 2.16. Response object
- 2.17. Returned CouchDB Document with Detailed Revision Info
- 2.18. Returned CouchDB Document with Revision Info
- 2.19. Returned Document with Attachments
- 2.20. Security Object
- 2.21. User Context Object
- 2.22. View Head Information
2. JSON Structure Reference
The following appendix provides a quick reference to all the JSON structures that you can supply to CouchDB, or get in return to requests.
2.1. All Database Documents
Field | Description |
---|---|
total_rows | Number of documents in the database/view |
offset | Offset where the document list started |
update_seq (optional) | Current update sequence for the database |
rows [array] | Array of document object |
2.2. Bulk Document Response
Field | Description |
---|---|
docs [array] | Bulk Docs Returned Documents |
id | Document ID |
error | Error type |
reason | Error string with extended reason |
2.3. Bulk Documents
Field | Description |
---|---|
docs [array] | Bulk Documents Document |
_id (optional) | Document ID |
_rev (optional) | Revision ID (when updating an existing document) |
_deleted (optional) | Whether the document should be deleted |
2.4. Changes information for a database
Field | Description |
---|---|
last_seq | Last update sequence |
pending | Count of remaining items in the feed |
results [array] | Changes made to a database |
seq | Update sequence |
id | Document ID |
changes [array] | List of changes, field-by-field, for this document |
2.5. CouchDB Document
Field | Description |
---|---|
_id (optional) | Document ID |
_rev (optional) | Revision ID (when updating an existing document) |
2.6. CouchDB Error Status
Field | Description |
---|---|
id | Document ID |
error | Error type |
reason | Error string with extended reason |
2.7. CouchDB database information object
Field | Description |
---|---|
db_name | The name of the database. |
committed_update_seq | The number of committed updates. |
doc_count | The number of documents in the database. |
doc_del_count | The number of deleted documents. |
compact_running | Set to true if the database compaction routine is operating on this database. |
disk_format_version | The version of the physical format used for the data when it is stored on hard disk. |
disk_size | Size in bytes of the data as stored on disk. View indexes are not included in the calculation. |
instance_start_time | Timestamp indicating when the database was opened, expressed in microseconds since the epoch. |
purge_seq | The number of purge operations on the database. |
update_seq | Current update sequence for the database. |
2.8. Design Document
Field | Description |
---|---|
_id | Design Document ID |
_rev | Design Document Revision |
views | View |
viewname | View Definition |
map | Map Function for View |
reduce (optional) | Reduce Function for View |
2.9. Design Document Information
Field | Description |
---|---|
name | Name/ID of Design Document |
view_index | View Index |
compact_running | Indicates whether a compaction routine is currently running on the view |
disk_size | Size in bytes of the view as stored on disk |
language | Language for the defined views |
purge_seq | The purge sequence that has been processed |
signature | MD5 signature of the views for the design document |
update_seq | The update sequence of the corresponding database that has been indexed |
updater_running | Indicates if the view is currently being updated |
waiting_clients | Number of clients waiting on views from this design document |
waiting_commit | Indicates if there are outstanding commits to the underlying database that need to processed |
2.10. Document with Attachments
Field | Description |
---|---|
_id (optional) | Document ID |
_rev (optional) | Revision ID (when updating an existing document) |
_attachments (optional) | Document Attachment |
filename | Attachment information |
content_type | MIME Content type string |
data | File attachment content, Base64 encoded |
2.11. List of Active Tasks
Field | Description |
---|---|
tasks [array] | Active Tasks |
pid | Process ID |
status | Task status message |
task | Task name |
type | Operation Type |
2.12. Replication Settings
Field | Description |
---|---|
source | Source database name or URL. |
target | Target database name or URL. |
cancel (optional) | Cancels the replication. |
checkpoint_interval (optional) | Specifies the checkpoint interval in ms. |
continuous (optional) | Configure the replication to be continuous. |
create_target (optional) | Creates the target database. |
doc_ids (optional) | Array of document IDs to be synchronized. |
filter (optional) | name of the filter function in the form of |
source_proxy (optional) | Address of a proxy server through which replication from the source should occur. |
target_proxy (optional) | Address of a proxy server through which replication to the target should occur. |
query_params (optional) | Query parameter that are passed to the filter function; the value should be a document containing parameters as members. |
selector (optional) | Select the documents included in the replication. This option provides performance benefits compared with using the |
since_seq (optional) | Sequence from which the replication should start. |
use_checkpoints (optional) | Whether to use replication checkpoints or not. |
2.13. Replication Status
Field | Description |
---|---|
ok | Replication status |
session_id | Unique session ID |
source_last_seq | Last sequence number read from the source database |
history [array] | Replication History |
session_id | Session ID for this replication operation |
recorded_seq | Last recorded sequence number |
docs_read | Number of documents read |
docs_written | Number of documents written to target |
doc_write_failures | Number of document write failures |
start_time | Date/Time replication operation started |
start_last_seq | First sequence number in changes stream |
end_time | Date/Time replication operation completed |
end_last_seq | Last sequence number in changes stream |
missing_checked | Number of missing documents checked |
missing_found | Number of missing documents found |
2.14. Request object
Field | Description |
---|---|
body | Request body data as string. If the request method is GET this field contains the value |
cookie | Cookies object. |
form | Form data object. Contains the decoded body as key-value pairs if the Content-Type header was |
headers | Request headers object. |
id | Requested document id string if it was specified or |
info | |
method | Request method as string or array. String value is a method as one of: HEAD, GET, POST, PUT, DELETE, OPTIONS, and TRACE. Otherwise it will be represented as an array of char codes. |
path | List of requested path sections. |
peer | Request source IP address. |
query | URL query parameters object. Note that multiple keys are not supported and the last key value suppresses others. |
requested_path | List of actual requested path section. |
raw_path | Raw requested path string. |
secObj | |
userCtx | |
uuid | Generated UUID by a specified algorithm in the config file. |
{
"body": "undefined",
"cookie": {
"AuthSession": "cm9vdDo1MDZBRjQzRjrfcuikzPRfAn-EA37FmjyfM8G8Lw",
"m": "3234"
},
"form": {},
"headers": {
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
"Accept-Encoding": "gzip,deflate,sdch",
"Accept-Language": "en-US,en;q=0.8",
"Connection": "keep-alive",
"Cookie": "m=3234:t|3247:t|6493:t|6967:t|34e2:|18c3:t|2c69:t|5acb:t|ca3:t|c01:t|5e55:t|77cb:t|2a03:t|1d98:t|47ba:t|64b8:t|4a01:t; AuthSession=cm9vdDo1MDZBRjQzRjrfcuikzPRfAn-EA37FmjyfM8G8Lw",
"Host": "127.0.0.1:5984",
"User-Agent": "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7"
},
"id": "foo",
"info": {
"committed_update_seq": 2701412,
"compact_running": false,
"db_name": "mailbox",
"disk_format_version": 6,
"doc_count": 2262757,
"doc_del_count": 560,
"instance_start_time": "1347601025628957",
"purge_seq": 0,
"sizes": {
"active": 7580843252,
"disk": 14325313673,
"external": 7803423459
},
"update_seq": 2701412
},
"method": "GET",
"path": [
"mailbox",
"_design",
"request",
"_show",
"dump",
"foo"
],
"peer": "127.0.0.1",
"query": {},
"raw_path": "/mailbox/_design/request/_show/dump/foo",
"requested_path": [
"mailbox",
"_design",
"request",
"_show",
"dump",
"foo"
],
"secObj": {
"admins": {
"names": [
"Bob"
],
"roles": []
},
"members": {
"names": [
"Mike",
"Alice"
],
"roles": []
}
},
"userCtx": {
"db": "mailbox",
"name": "Mike",
"roles": [
"user"
]
},
"uuid": "3184f9d1ea934e1f81a24c71bde5c168"
}
2.15. Request2 object
Field | Description |
---|---|
body | Request body data as string. If the request method is GET this field contains the value |
cookie | Cookies object. |
headers | Request headers object. |
method | Request method as string or array. String value is a method as one of: HEAD, GET, POST, PUT, DELETE, OPTIONS, and TRACE. Otherwise it will be represented as an array of char codes. |
path | List of requested path sections. |
peer | Request source IP address. |
query | URL query parameters object. Note that multiple keys are not supported and the last key value suppresses others. |
requested_path | List of actual requested path section. |
raw_path | Raw requested path string. |
secObj | |
userCtx |
2.16. Response object
Field | Description |
---|---|
code | HTTP status code number. |
json | JSON encodable object. Implicitly sets Content-Type header as |
body | Raw response text string. Implicitly sets Content-Type header as |
base64 | Base64 encoded string. Implicitly sets Content-Type header as |
headers | Response headers object. Content-Type header from this object overrides any implicitly assigned one. |
stop | boolean signal to stop iteration over view result rows (for list functions only) |
Warning
The body
, base64
and json
object keys are overlapping each other where the last one wins. Since most realizations of key-value objects do not preserve the key order or if they are mixed, confusing situations can occur. Try to use only one of them.
Note
Any custom property makes CouchDB raise an internal exception. Furthermore, the Response object could be a simple string value which would be implicitly wrapped into a {"body": ...}
object.
2.17. Returned CouchDB Document with Detailed Revision Info
Field | Description |
---|---|
_id (optional) | Document ID |
_rev (optional) | Revision ID (when updating an existing document) |
_revs_info [array] | CouchDB document extended revision info |
rev | Full revision string |
status | Status of the revision |
2.18. Returned CouchDB Document with Revision Info
Field | Description |
---|---|
_id (optional) | Document ID |
_rev (optional) | Revision ID (when updating an existing document) |
_revisions | CouchDB document revisions |
ids [array] | Array of valid revision IDs, in reverse order (latest first) |
start | Prefix number for the latest revision |
2.19. Returned Document with Attachments
Field | Description |
---|---|
_id (optional) | Document ID |
_rev (optional) | Revision ID (when updating an existing document) |
_attachments (optional) | Document attachment |
filename | Attachment |
stub | Indicates whether the attachment is a stub |
content_type | MIME Content type string |
length | Length (bytes) of the attachment data |
revpos | Revision where this attachment exists |
2.20. Security Object
Field | Description |
---|---|
admins | Roles/Users with admin privileges |
roles [array] | List of roles with parent privilege |
names [array] | List of users with parent privilege |
members | Roles/Users with non-admin privileges |
roles [array] | List of roles with parent privilege |
names [array] | List of users with parent privilege |
{
"admins": {
"names": [
"Bob"
],
"roles": []
},
"members": {
"names": [
"Mike",
"Alice"
],
"roles": []
}
}
2.21. User Context Object
Field | Description |
---|---|
db | Database name in the context of the provided operation. |
name | User name. |
roles | List of user roles. |
{
"db": "mailbox",
"name": null,
"roles": [
"_admin"
]
}
2.22. View Head Information
Field | Description |
---|---|
total_rows | Number of documents in the view |
offset | Offset where the document list started |
{
"total_rows": 42,
"offset": 3
}