Der Name einer Datenbank ist auf Kleinbuchstaben (a-z), Zahlen (0-9) sowie _ $ ( ) + – beschränkt.
Großbuchstaben sind für Datenbanknamen nicht erlaubt.
Alle Datenbankdateien werden in einem einzigen Ordner gespeichert. Die Dateiendung lautet .couch, dadurch ist ein umbenennen von Datenbanken sehr einfach, wenn man eins.couch in zwei.couch umbenennt, ist die Datenbank unter /zwei zu erreichen.
Eine neue Datenbank wird mit PUT erzeugt.
curl -x PUT http://127.0.0.1:5984/<database>
Mit DELETE wird eine Datenbank gelöscht.
curl -x DELETE http://127.0.0.1:5984/<database>
Alle Datenbank abfragen.
curl -vX GET http://127.0.0.1:5984/_all_dbs
Details zur einer Datenbank abfragen.
curl GET http://127.0.0.1:5984/<database>
Die Ausgabe könnte dann so aussehen.
curl GET http://127.0.0.1:5984/testdb
{
"db_name":"testdb",
"doc_count":2,
"doc_del_count":1,
"update_seq":8,
"purge_seq":0,
"compact_running":false,
"disk_size":32857,
"instance_start_time":"1312133124545331",
"disk_format_version":5,
"committed_update_seq":8
}
Änderungen anzeigen
CouchDB speichert Änderungen mit einer Sequenznummer.
curl GET http://127.0.0.1:5984/<database>/_changes
Die Ausgabe kann mit Paramtern beeinflusst werden.
since=seqnum
So kann ein Offset definiert werden, wodurch nur Änderungen ausgegeben werden die nach der Sequenznummer erfolgt sind.
Compaction (Verdichtung)
Append-Only B-Tree
Die Funktion schreibt die Datenbankdatei neu und entfernt dabei alte Versionen und gelöste Dokumente.
curl POST http://127.0.0.1:5984/<database>/_compact
Replikation
Eine kontinuierliche Replikation geht nach einem Neustart verloren.
curl POST http://127.0.0.1:5984/<database>/_replicate -d '{"source":"http://user:pass@localhost:5984/db1",
"target":"http://user:pass@localhost:5984/db2"}'
create_target: true|false
continuous: true|false
History-Objekt
Eine Liste mit session_id Einträgen für die Replikation, ist auf 50 Einträge beschränkt.
session_id, start_time, end_time, start_last_seq, end_last_seq, recorded_seq, missing_checked, mission_found, dosc_read,
docs_written, doc_write_failures