Start dev cluster:
$ ./dev/run --admin eiri:eiri
[ * ] Setup environment ... ok
[ * ] Ensure CouchDB is built ... ok
[ * ] Prepare configuration files ... ok
[ * ] Start node node1 ... ok
[ * ] Start node node2 ... ok
[ * ] Start node node3 ... ok
[ * ] Check node at http://127.0.0.1:15984/ ... ok
[ * ] Check node at http://127.0.0.1:25984/ ... ok
[ * ] Check node at http://127.0.0.1:35984/ ... ok
[ * ] Running cluster setup ... ok
[ * ] Developers cluster is set up at http://127.0.0.1:15984.
Create db and some documents (REST client is httpie)
$ http put :15984/db01
{
"ok": true
}
$ http post :15984/db01 answer=42
{
"id": "6bc0990c7e884e824a4b51c6b2000cea",
"ok": true,
"rev": "1-12d91df5ca27fec407a347319734847b"
}
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2000cea
{
"_id": "6bc0990c7e884e824a4b51c6b2000cea",
"_rev": "1-12d91df5ca27fec407a347319734847b",
"answer": "42"
}
$ http put :15984/db01/6bc0990c7e884e824a4b51c6b2000cea rev==1-12d91df5ca27fec407a347319734847b answer=42 _deleted=true
{
"error": "doc_validation",
"reason": "Bad special document member: _deleted"
}
$ http delete :15984/db01/6bc0990c7e884e824a4b51c6b2000cea rev==1-12d91df5ca27fec407a347319734847b
{
"id": "6bc0990c7e884e824a4b51c6b2000cea",
"ok": true,
"rev": "2-fc8f2b1346096c496b5627cc872aebb7"
}
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2000cea
{
"error": "not_found",
"reason": "deleted"
}
Now with open_revs
to include all leaf revisions (including deleted) and revs
to get detailed info on those revisions.
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2000cea open_revs==all revs==true
[
{
"ok": {
"_deleted": true,
"_id": "6bc0990c7e884e824a4b51c6b2000cea",
"_rev": "2-fc8f2b1346096c496b5627cc872aebb7",
"_revisions": {
"ids": [
"fc8f2b1346096c496b5627cc872aebb7",
"12d91df5ca27fec407a347319734847b"
],
"start": 2
}
}
}
]
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2000cea rev==2-fc8f2b1346096c496b5627cc872aebb7
{
"_deleted": true,
"_id": "6bc0990c7e884e824a4b51c6b2000cea",
"_rev": "2-fc8f2b1346096c496b5627cc872aebb7"
}
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2000cea rev==1-12d91df5ca27fec407a347319734847b
{
"_id": "6bc0990c7e884e824a4b51c6b2000cea",
"_rev": "1-12d91df5ca27fec407a347319734847b",
"answer": "42"
}
Now to demostrate what revs_info
does on non-deleted document with multiple revisions
$ http post :15984/db01 name=alice
{
"id": "6bc0990c7e884e824a4b51c6b2001abf",
"ok": true,
"rev": "1-2350796167caec1f6ba70e9145a9e102"
}
$ http put :15984/db01/6bc0990c7e884e824a4b51c6b2001abf rev==1-2350796167caec1f6ba70e9145a9e102 name=bob
{
"id": "6bc0990c7e884e824a4b51c6b2001abf",
"ok": true,
"rev": "2-4e8f37cba3bdef099f89bceb9b2f370d"
}
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2001abf
{
"_id": "6bc0990c7e884e824a4b51c6b2001abf",
"_rev": "2-4e8f37cba3bdef099f89bceb9b2f370d",
"name": "bob"
}
$ http :15984/db01/6bc0990c7e884e824a4b51c6b2001abf revs_info==true
{
"_id": "6bc0990c7e884e824a4b51c6b2001abf",
"_rev": "2-4e8f37cba3bdef099f89bceb9b2f370d",
"_revs_info": [
{
"rev": "2-4e8f37cba3bdef099f89bceb9b2f370d",
"status": "available"
},
{
"rev": "1-2350796167caec1f6ba70e9145a9e102",
"status": "available"
}
],
"name": "bob"
}