Я не думаю, что возможен обходной путь.
Поиск по ключевым словам только немного медленнее, чем поиск по идентификатору документа. (См. benchmarks .) Насколько я понимаю, тип документа _id
не влияет на производительность в случае просмотра представления, поскольку он опирается на свою собственную независимую структуру B-дерева. Поэтому для фактического поиска информации о пользователях просмотр запросов по последовательно идентифицированным документам вполне подходит.
Но я понимаю, что вы хотели бы иметь возможность регистрировать пользователей и гарантировать отсутствие конфликтов имен пользователей. Таким образом, у вас ДОЛЖЕН есть имя пользователя в идентификаторе документа.
Это правильное решение, если вы решите восстать против возможного подхода CouchDB к согласованности.
Кроме того, я понимаю, что вы вряд ли столкнетесь с ухудшением производительности, если не будете выполнять массовую вставку случайных имен пользователей или обрабатывать большое количество новых пользователей в секунду.
Это тот же компромисс производительности, который делают другие базы данных. Вы можете вставлять данные быстрее без блокировок / транзакций, чем навязывая их.