CouchDB: Как изменить функцию просмотра через JavaScript? - PullRequest
2 голосов
/ 15 мая 2010

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

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

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

Я не думаю, что временное представление приведет к увеличению производительности ...

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

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

[добавлено]

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

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

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

Ответы [ 2 ]

1 голос
/ 17 мая 2010

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

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

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

Приветствие.

0 голосов
/ 13 января 2012

Я написал вспомогательные функции для jquery.couch и дизайнерских документов, взгляните на:

https://github.com/grischaandreew/jquery.couch.js

...