2010-05-15 2 views
2

Я играю с CouchDB, чтобы проверить, возможно ли это [1] сохранить научные данные (имитированные и экспериментальные исходные данные + метаданные). Большой профессионал - это подход, не имеющий схемы без использования CouchDB: мы должны быть очень гибкими с метаданными, поскольку набор параметров изменяется очень часто.CouchDB: Как изменить функцию просмотра через javascript?

До сих пор у меня есть некоторый код для подачи необработанных данных, графиков (как вложений) и иерархических метаданных (как JSON) в документы CouchDB, и написал несколько прототипов Javascript для фильтрации и показа. Но фильтрация выполняется на стороне клиента (браузер a.k.a.): функция map просто возвращает все.

Как я могу изменить (или нажать вторую) функцию карты определенного _design-документа с помощью простого браузера-JS?

Я не думаю, что временный вид даст какой-либо выигрыш в производительности ...

Спасибо за ваше время и ответы.

[1]: Конечно, это возможно, но полезно ли это? возможно? разумно?

[добавлено]

Ах, jquery.couch.js (версия 0.9.0) обеспечивает функцию saveDoc(), которая может обновить _design документ с новой функцией отображения.

Но я также опробовал функцию запроса, которая использует временное представление. Хорошо, «не используйте это в реальном продукте, только во время разработки» ... Но научные исследования - это устойчивое развитие, не так ли?

Временные представления получают кеширование, как я заметил, и он хорошо работает для ~ 1000 документов на БД. Второй плюс: все пользователи (думаю, от 1 до 3, поэтому большое управление пользователями - это перебор) может работать со своим временным видом.

ответ

1

Никогда использовать временные виды. Они действительно существуют только для разработчиков и отладки. Для получения дополнительной информации см. http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views (в частности, жирный «ПРИМЕЧАНИЕ»).

И да, потому что проектные документы - это действительно документы со специальными полномочиями, вы можете запускать на них методы GET/POST/PUT/DELETE. Однако для этого вам обычно нужны привилегии администратора. Таким образом, если вы разрешаете части программного обеспечения на стороне клиента, вы делаете всю свою базу данных общедоступной для доступа к чтению/записи - это может быть хорошо для вашего приложения, но важно помнить.

Например, если вы ограничиваете доступ к своей базе данных, но вводите имя пользователя и пароль на javascript на стороне клиента, тогда каждый может видеть это имя пользователя и пароль.

Cheers.

Смежные вопросы