每当访问文档时,我都希望将最后访问时间添加到文档中。
如果有GET请求,如何在视图中更新文档?
答案 0 :(得分:4)
你做不到。 GET(正确使用时)不会修改数据; CouchDB正确使用GET。
如果您确实要记录这样的访问时间,则需要使用新的时间戳更新文档,并将文档返回CouchDB。但是,如果有多人访问文档,您很可能会对其进行争用并从CouchDB中获得冲突错误。
一种选择是在每次访问时在CouchDB中创建一个新的“文档访问”文档,但这会迅速增加数据库的大小。如果它有用,你实际上有访问时间的历史记录吗?
就个人而言,我会简单地将文档访问记录到文件或队列,并在后台处理文件/队列。你可以为每个真实文档提供一个“文档访问”文档,因为几乎没有或没有争用的可能性,更新失败可能并不重要(无论如何你总是可以再试一次)。