couchDB 不是处理大型数据集的正确工具吗?
is couchDB just not the right tool for large datasets?
我正在研究 couchDB。如果我理解正确,你不能只发送 "query" 到 couchDB 并进行部分更新。
例如,此文档名为 "users"(为清楚起见进行了简化):
{
allusers: [
{"id": 1, "username":"myuser1", "pass":"secret"},
{"id": 2, "username":"myuser2", "pass":"password"},
{"id": 3, "username":"myuser3", "pass":"crypto"}
]
}
真的没有办法更新用户 3 的密码吗,我必须加载整个文档,在客户端 javascript 中进行更新,然后将整个对象发回使用 PUT 请求?
我希望我只是不太了解 couchDB 的工作原理和想要完成的事情。
如何更新可能非常大的对象的一部分?
文档存储中的文档(如 CouchDB)在概念上类似于 RDBMS table 中的行或文件系统中的文件,不是 table s.
在您的示例中,myuser1
有单独的文档,myuser2
有一个文档,myuser3
有一个文档,每个文档都很小,独立且因此更新方便快捷。理想情况下,您的所有文档都应该是这样。
CouchDB Guide 有一章很好地介绍了 CouchDB 是什么以及为什么(以及何时!)它有用。
使用 update handler function 避免发送整个文档来更新部分内容。
您将可以访问您已发送的数据 和 当前版本的文档。然后您更改文档并将其返回给 CouchDB。
我正在研究 couchDB。如果我理解正确,你不能只发送 "query" 到 couchDB 并进行部分更新。
例如,此文档名为 "users"(为清楚起见进行了简化):
{
allusers: [
{"id": 1, "username":"myuser1", "pass":"secret"},
{"id": 2, "username":"myuser2", "pass":"password"},
{"id": 3, "username":"myuser3", "pass":"crypto"}
]
}
真的没有办法更新用户 3 的密码吗,我必须加载整个文档,在客户端 javascript 中进行更新,然后将整个对象发回使用 PUT 请求?
我希望我只是不太了解 couchDB 的工作原理和想要完成的事情。
如何更新可能非常大的对象的一部分?
文档存储中的文档(如 CouchDB)在概念上类似于 RDBMS table 中的行或文件系统中的文件,不是 table s.
在您的示例中,myuser1
有单独的文档,myuser2
有一个文档,myuser3
有一个文档,每个文档都很小,独立且因此更新方便快捷。理想情况下,您的所有文档都应该是这样。
CouchDB Guide 有一章很好地介绍了 CouchDB 是什么以及为什么(以及何时!)它有用。
使用 update handler function 避免发送整个文档来更新部分内容。
您将可以访问您已发送的数据 和 当前版本的文档。然后您更改文档并将其返回给 CouchDB。