Получить документы из CouchDB на основе уникального поля - PullRequest
1 голос
/ 20 апреля 2010

Как я могу получить документ из CouchDB по его полю, а не по идентификатору?

Проблема в том, что документы в моей системе должны иметь числовые идентификаторы, поэтому я добавляю поле с именем doc_id к сохраненным документам. Родные идентификаторы CouchDB слишком длинные для меня.

Как, например, получить документ с doc_id = 10?

1 Ответ

4 голосов
/ 20 апреля 2010

Чтобы получить документ (ы) с doc_id = 10, вам нужно создать представление с doc_id в качестве ключа. На самом деле, вы не можете навязать уникальность doc_id.

Вместо использования doc_id вы все равно можете использовать поле _id в CouchDB. Iirc, вам не нужно оставлять это в CouchDB, чтобы присвоить значение _id. Если вам не нравятся UUID, которые CouchDB использует для поля _id, вы можете создать документ с указанным _id.

Вы должны быть осторожны с этим, особенно. в распределенной настройке. Если у вас разные документы (на разных узлах) с одинаковым _id, CouchDB может считать их разными версиями одного и того же документа.

...