我正在玩CouchDB以测试是否“可能”[1]存储科学数据(模拟和实验原始数据+元数据)。一个很大的专业是CouchDB的无模式方法:我们必须非常灵活地使用元数据,因为参数集经常变化。
到目前为止,我有一些代码可以将原始数据,图表(作为附件)和分层元数据(作为JSON)提供给CouchDB文档,并编写了一些原型Javascript用于过滤和显示。但过滤是在客户端完成的(a.k.a。浏览器):map函数只返回所有内容。
如何使用简单的浏览器JS更改特定_design-document的(或推送第二个)map函数?
我认为临时观点不会产生任何性能提升......
感谢您的时间和答案。
[1]:当然有可能,但它也有用吗?可行?合理?
[加入]
啊,jquery.couch.js(版本0.9.0)提供了saveDoc()函数,它可以使用新的map函数更新_design文档。
但我也尝试了使用临时视图的查询功能。好的,“不要在真实产品中使用它,只能在开发过程中使用”......但是科学研究是稳定发展,对吗?
正如我所注意到的那样,临时视图正在被缓存,并且它适用于每个数据库大约1000个文档。第二个优点:所有用户(想到1到3,因此大用户管理员退出过度杀伤)可以使用他们自己的临时视图。
答案 0 :(得分:1)
从不永远使用临时视图。它们实际上仅用于开发和调试目的。有关详细信息,请参阅http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views(特别是粗体“注”)。
是的,因为设计文档实际上只是具有特殊功能的文档,您可以在它们上运行GET / POST / PUT / DELETE方法。但是,您通常需要管理员权限才能执行此操作。因此,如果您允许客户端软件执行此操作,那么您将整个数据库公开以进行读/写访问 - 这可能适用于您的应用程序,但重要的是要记住。
例如,如果您限制对数据库的访问,但将用户名和密码放在客户端javascript中,那么任何人都可以看到该用户名和密码。
干杯。
答案 1 :(得分:0)
我为jquery.couch和设计文档编写了一个帮助函数,看看: