Os bancos de dados neste modelo compreendem uma série de documentos, cada um contendo uma série de campos e valores. Cada documento é independente um do outro e não usam nenhuma restrição quanto a sua estrutura durante a criação. Em vez de um campo de chave primária, cada documento em um banco de dados CouchDB tem um ID único. Esta identificação exclusiva pode ser atribuída pelo usuário ou pelo aplicativo, ou ele pode usar um identificador universalmente exclusivo (UUID); este número aleatório é gerado pelo CouchDB que reduz a chance de duplicar IDs.
Segundo Moraes (2009), a "base de dados orientados a documento é diferente. Não existe hierarquia de dados, somente uma coleção de documentos que pode conter virtualmente qualquer espécie de dados". Os documentos não precisam ser necessariamente do mesmo tamanho, pois alguns documentos podem conter detalhes de campos que outros não precisam armazenar. "Em outras palavras, você não está condicionado a um esquema de banco de dados".
Diferente dos bancos de dados relacionais, o banco orientado a documentos não grava dados em tabelas em linhas com campos uniformes. Neste banco de "dados" são inseridos documentos com determinadas características, a cada domínio são inseridos vários campos e esses campos por sua vez podem possuir vários elementos.
Características
De acordo com Bain (2009), podem ser descritas algumas características deste modelo de banco de dados. Podem-se criar bancos diferentes com vários esquemas.
- Itens são definidos por chaves e a cada item podem ser adicionados vários atributos;
- Em algumas implementações os atributos são todos de um tipo, em outras assumem inteiros, listas e string, entre outros.
Mais algumas características, agora sobre acesso aos dados:
- Os dados são criados, atualizados, e recuperados usando métodos de chamada por API;
- Toda a aplicação e os dados que a integram a lógica estão contidos no código da aplicação.