Работа с данными в CouchDB организована следующим образом:
Хранение данных организовано в виде набора независимых документов, а не в связях и таблицах. 1 При этом в метаданных каждого документа указаны параметры версии — это помогает избежать проблем при работе с репликами и объединёнными базами, если они были на время разъединены. 1
Для управления доступом нескольких пользователей используется механизм multiversion concurrency control (MVCC) — выделение каждому пользователю собственного снимка базы, изменения в котором будут недоступны другим пользователям до момента фиксации транзакции. 1
В качестве единицы хранения информации используется JSON (JavaScript Object Notation) документ. 1 Поля документа имеют уникальные имена и содержат значения различных типов (текст, число, логическое значение, списки и т.д.). 2
Запросы к СУБД, а также индексация данных, реализованы с помощью технологии MapReduce, с использованием JavaScript. 1 Обращение к базам данных происходит с помощью HTTP и REST API. 1 Существует множество клиентских библиотек, использующих разные языки. 1 Кроме этого, обращаться к данным можно и с помощью web-приложений, выполняемых в браузере. 1
Для фильтрации, организации и создания отчётов по данным CouchDB предоставляет модель представления. 2 Представления создаются динамически и не влияют на базовый документ, можно иметь столько различных представлений одних и тех же данных, сколько захочется. 2