4

对于上下文:这是一个 HTML 应用程序,几乎没有浏览器端 JavaScript。我不能轻易改变它,所以需要在服务器上这样做。

CouchDB 的构建没有副作用。这很公平。但是,我似乎没有任何方法可以用节目、视图、列表来改变显示给用户的后续请求,或者基于用户对象,而无需写入数据。

获取文档的请求是否会导致创建新记录?我猜不是因为那会是副作用。

但是,如果可以,您可以创建一个日志,然后有一个视图,该视图可以选择广告公司一组描述广告的文档,这些文档在显示之前的广告时会受到日志中的更改的影响。

我实际上不会在我的网站上展示广告,我将提供提示、文章摘要和因页面加载而异的次要功能。

任何建议表示赞赏。

对于我需要的其余功能,我已经开始思考如何使用谷物,但这一点似乎与 couchdb 的工作方式相反。

4

2 回答 2

1

我认为您将需要一个列表函数,该函数从视图中接收一组文档,然后仅选择一个返回,无论是随机还是其他方法。但是,因为您在列表函数中,所以您可以访问用户的请求详细信息,包括 cookie(您也可以设置,顺便说一句。)这听起来更像您想要的。

此外,您可以为列表函数指定不同的视图以在查询时使用。这意味着你可以,比如说,只有随机文章出现在主页上,但任何类型的内容都会出现在所有其他页面上。

注意:您无法在 map/reduce 函数中访问请求,如果您在 map 函数中执行 Math.random() 之类的操作,则会遇到问题。

所以列表函数是要走的路。

http://guide.couchdb.org/draft/transforming.html

于 2010-08-31T03:55:51.900 回答
0

查看从视图中选择随机文档的各种方法。这应该使您能够选择要显示的随机文档(可能代表广告、提示等)。

于 2010-08-21T06:19:23.887 回答