couchDB不是大型数据集的合适工具吗?

时间:2015-04-08 20:54:38

标签: jquery couchdb couchdb-futon

我正在研究couchDB。如果我理解正确,你不能只是向couchDB发送一个“查询”并进行部分更新。

例如,此文档称为“用户”(为简洁起见而简化):

{
   allusers: [
      {"id": 1, "username":"myuser1", "pass":"secret"},
      {"id": 2, "username":"myuser2", "pass":"password"},
      {"id": 3, "username":"myuser3", "pass":"crypto"}
   ]
}

是否真的没有办法更新用户3的密码,而是我必须加载整个文档,在客户端上使用javascript进行更新,然后使用PUT请求发回整个对象?< / p>

我希望我不太了解couchDB的工作原理并希望完成任务。

如何更新可能非常大的对象的一部分?

2 个答案:

答案 0 :(得分:4)

文档存储中的文档(如CouchDB)在概念上类似于RDBMS表中的行或文件系统中的文件, not 表。

在您的示例中,您将拥有myuser1的单独文档,myuser2的一个文档和myuser3的一个文档,每个文档都很小,自包含且因此很容易并快速更新。理想情况下,您的所有文档都是这样的。

CouchDB Guide在CouchDB是什么以及为什么(以及何时!)有用的时候有一个很好的章节。

答案 1 :(得分:1)

使用update handler function来避免发送整个文档以更新部分内容。

如果是文档,您将可以访问已发送当前版本的数据。然后你改变文档并将其交还给CouchDB。