Поиск ключом в Apache CouchDB

Действительно ли возможно искать значением ключа в Apache CouchDB? Учитывая демонстрационные данные ниже (расположенный с интервалами для удобочитаемости):

{
    "_id":"a754a63dcc7f319b02f7ce6de522ca26",
    "_rev":"1-5bd88e53fe0869b8ce274b49a2c1ddf5",
    "name":"john smith",
    "email":"jsmith@example.com",
    "username":"jsmith"
}

Я мог запросить базу данных для пользователя jsmith или для пользователя, имеющего электронную почту jsmith@example.com? Как я пошел бы об этом?

8
задан Andreas Niedermair 26 May 2015 в 07:35
поделиться

2 ответа

Да, это, конечно, возможно. Вы создадите пару представлений, которые представляют собой отсортированные списки ("индекс") ваших данных, по одному на ключ.

Ссылка Тобиаса полезна. Однако в стандартной документации CouchDB это тоже описано:

Например, в вашем проектном документе вам может понадобиться представление users_by_email, ключи которого основаны на поле email; затем представление users_by_name с ключами на основе поля username и т.д. Экспериментируйте с временными представлениями в Futon, пока не добьетесь правильной работы вашей функции, а затем сохраните ее в вашем проектном документе на постоянной основе.

Удачи!

P.S. Есть способ объединить все эти требования в одно представление. Вкратце, вы могли бы набрать ["email", "jsmith@example.com"] или ["name": "john smith"], однако помните, что CouchDB расслаблен: более простой метод, описанный выше, будет работать отлично. Когда вы освоитесь с представлениями, вы можете изучить этот "сопоставленный" стиль.

6
ответ дан 5 December 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: