从CouchDB读取+写入数据的有效方法

时间:2015-03-06 11:09:38

标签: couchdb

我正在实现一个应用程序,其中包括登录以访问存储在托管CouchDB存储中的文档的用户。用户向应用程序提供其凭据,一旦应用程序对其进行身份验证,该应用程序就会有两个作业:

  1. 获取与该用户数据相关联的文档ID
  2. 更新存储在该文档中的“lastOpened”值
  3. 我不得不以一种效率相当低的方式做这两件事:我读了一个View,它将应用程序的用户标识符(在这种情况下是他们的电子邮件地址)映射到他们的文档ID。一旦我有了文档ID(并将其添加到会话中供以后使用),我就必须请求文档,上升“lastOpened”值,然后将文档保存回商店。

    对我来说,这似乎是3次访问数据库:1。从视图中获取文档ID,2。使用该ID获取文档,3。保存更新的文档。

    是否有将这项工作减少到更少的数据库旅行?

2 个答案:

答案 0 :(得分:3)

如果您可以更改文档结构,则可以使用用户的登录名作为文档ID。这样,您就不必使用视图。使用update handlers,您甚至可以在一个请求中完成所有工作。

答案 1 :(得分:1)

  

对我来说,这似乎是3次访问数据库:1。从视图中获取文档ID,2。使用该ID获取文档,3。保存更新的文档。

     

是否有将这项工作减少到更少的数据库旅行?

您可以通过添加"?include_docs = true"来从视图中获取文档。请求中的查询参数。所以两步而不是三步。