Возможно, у вас есть документ конфликт .
В отличие от военного или этического конфликта, CouchDB конфликт является нормальным и полезным, обычно возникает после репликации. (Конфликты несколько похожи на ветки в Git, Mercurial или Bzr.)
Во время репликации CouchDB иногда получает альтернативные версии того же документа. В этой ситуации, вместо замены одной ревизии другой, CouchDB сохраняет обе. К сожалению, когда вы запрашиваете CouchDB для получения этого документа, он должен решить, какой из них отправить; и в основном он просто выбирает одну ревизию и отправляет ее. Используя обычный GET /db/doc_id
запрос, вы никогда бы не поняли, что «конфликтующая» (альтернативная) ревизия где-то скрывается в базе данных.
Приведенная выше ссылка показывает, как находить и разрешать конфликты (при удалении нежелательной ревизии оставшаяся ревизия будет видна.) Важнейшим примером является представление для поиска конфликтов:
function(doc) {
// Map function in a CouchDB view to find conflicts.
if(doc._conflicts) {
emit(doc._conflicts, null);
}
}
Если вы запросите это представление, я думаю, вы увидите некоторые конфликты. Если представление возвращает 0 строк, то это вовсе не проблема, и нам придется продолжать думать о вашей проблеме.