Документы CouchDB, кажется, имеют прикрепленный ключ; он не отображается при получении одного документа, но вы можете использовать их для получения диапазонов документов, таких как:
wget "http://localhost:5984/monitor20n/_all_docs?startkey=1111&endkey=2222
Тем не менее, очевидно, что ключ всегда совпадает с идентификатором документа, так что все, что вы получаете, это что-то вроде этого
{"total_rows":14269,"offset":0,"rows":[
{"id":"128127896626798592","key":"128127896626798592","value":{"rev":"1-4e07e2c4b4eddfad5846ddf905337197"}},
{"id":"128128575021907970","key":"128128575021907970","value":{"rev":"1-43d983af1e837a4415b6167cae3b5de8"}},
... and so on }}
(см. Здесь ключ == id). Тем не менее, вы можете использовать более сложные ключи в представлениях, включая векторы, которые обеспечивают гораздо более сложное взаимодействие; по крайней мере, вы можете установить ключи представлений, чтобы теперь заранее знать, что искать, не просматривая идентификаторы документов.
Вопрос сейчас: вы можете установить эти ключи при создании документа? Или, может быть, после его создания?
Очевидный обходной путь - создать вид, подобный этому
function (doc) {
emit(doc.key,doc)
}
однако, я хотел бы знать, есть ли более прямой способ получить тот же эффект.