Пример работы с view в CouchDB

Вместо индексов в CouchDB используется map/reduce.
Часто хватает создания одной только map-функции вида

После чего в индексный файл помещаются все пары ключ-значение (из базы данных, к которой привязана map-функция), упорядоченные по ключу.

Пример использования map-функций.
Для начала надо создать базу данных с документами.
На главной странице Futon’а нажимаем на «create database» — создаём базу «modules». Дальше в этой базе «create document» — создаём документы:

*при внесении текстового поля его надо брать в кавычки

Затем в селекте справа выбираем «temporary view».
Создаём первый view.
В поле «Map Function:»:

и сохраняем («save as») с параметрами
Design Document — modules_views
View Name — compas_modules.

Создаём второй view.
В поле «Map Function:»:

и сохраняем («save as») с параметрами
Design Document — modules_views
View Name — one_module.

После чего в браузере можно набрать
http://localhost:5984/modules/_design/modules_views/_view/compas_modules?key=»compas1″ — выдаст

а если набрать
http://localhost:5984/modules/_design/modules/_view/one_module?key=[«compas1»,0] — выдаст

Вообще-то надо обязательно проверять каждый раз, присутствует ли указанное свойство у документа,
т.е. вместо

желательно писать

т.к. при регулярных возникновениях ошибок при использовании map-функции (что может случиться, если свойства нет) CouchDB запрещает любое индексирование, чтобы прекратить дальнейшее использование ресурсов.

2 Responses so far.

  1. Побольше бы таких тем!

LEAVE A COMMENT