1.7. Local (non-replicating) Documents
The Local (non-replicating) document interface allows you to create local documents that are not replicated to other databases. These documents can be used to hold configuration or other information that is required specifically on the local CouchDB instance.
Local documents have the following limitations:
- Local documents are not replicated to other databases.
- Local documents are not output by views, or the /{db}/_all_docs view.
From CouchDB 2.0, Local documents can be listed by using the /db/_local_docs endpoint.
Local documents can be used when you want to store configuration or other information for the current (local) instance of a given database.
A list of the available methods and URL paths are provided below:
Method | Path | Description |
---|---|---|
GET, POST | /db/_local_docs | Returns a list of all the non-replicated documents in the database |
GET | /db/_local/id | Returns the latest revision of the non-replicated document |
PUT | /db/_local/id | Inserts a new version of the non-replicated document |
DELETE | /db/_local/id | Deletes the non-replicated document |
COPY | /db/_local/id | Copies the non-replicated document |
1.7.1. /db/_local_docs
GET
/{db}/_local_docs
Returns a JSON structure of all of the local documents in a given database. The information is returned as a JSON structure containing meta information about the return structure, including a list of all local documents and basic contents, consisting the ID, revision and key. The key is the from the local document’s _id
.
Parameters: |
|
---|---|
Request Headers: | |
| |
Query Parameters: | |
| |
Response Headers: | |
| |
Response JSON Object: | |
| |
Status Codes: |
|
Request:
GET /db/_local_docs HTTP/1.1
Accept: application/json
Host: localhost:5984
Response:
HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Type: application/json
Date: Sat, 23 Dec 2017 16:22:56 GMT
Server: CouchDB (Erlang/OTP)
Transfer-Encoding: chunked
{
"offset": null,
"rows": [
{
"id": "_local/localdoc01",
"key": "_local/localdoc01",
"value": {
"rev": "0-1"
}
},
{
"id": "_local/localdoc02",
"key": "_local/localdoc02",
"value": {
"rev": "0-1"
}
},
{
"id": "_local/localdoc03",
"key": "_local/localdoc03",
"value": {
"rev": "0-1"
}
},
{
"id": "_local/localdoc04",
"key": "_local/localdoc04",
"value": {
"rev": "0-1"
}
},
{
"id": "_local/localdoc05",
"key": "_local/localdoc05",
"value": {
"rev": "0-1"
}
}
],
"total_rows": null
}
POST
/{db}/_local_docs
POST _local_docs functionality supports identical parameters and behavior as specified in the GET /{db}/_local_docs API but allows for the query string parameters to be supplied as keys in a JSON object in the body of the POST request.
Request:
POST /db/_local_docs HTTP/1.1
Accept: application/json
Content-Length: 70
Content-Type: application/json
Host: localhost:5984
{
"keys" : [
"_local/localdoc02",
"_local/localdoc05"
]
}
The returned JSON is the all documents structure, but with only the selected keys in the output:
{
"total_rows" : null,
"rows" : [
{
"value" : {
"rev" : "0-1"
},
"id" : "_local/localdoc02",
"key" : "_local/localdoc02"
},
{
"value" : {
"rev" : "0-1"
},
"id" : "_local/localdoc05",
"key" : "_local/localdoc05"
}
],
"offset" : null
}
1.7.2. /db/_local/id
GET
/{db}/_local/{docid}
Gets the specified local document. The semantics are identical to accessing a standard document in the specified database, except that the document is not replicated. See GET /{db}/{docid}.
PUT
/{db}/_local/{docid}
Stores the specified local document. The semantics are identical to storing a standard document in the specified database, except that the document is not replicated. See PUT /{db}/{docid}.
DELETE
/{db}/_local/{docid}
Deletes the specified local document. The semantics are identical to deleting a standard document in the specified database, except that the document is not replicated. See DELETE /{db}/{docid}.
COPY
/{db}/_local/{docid}
Copies the specified local document. The semantics are identical to copying a standard document in the specified database, except that the document is not replicated. See COPY /{db}/{docid}.