我在调查couchDB。如果我正确理解,您不能只向couchDB发送一个“查询”并执行部分更新。
例如,这份名为“用户”的文件(为清晰起见简化):
{
allusers: [
{"id": 1, "username":"myuser1", "pass":"secret"},
{"id": 2, "username":"myuser2", "pass":"password"},
{"id": 3, "username":"myuser3", "pass":"crypto"}
]
}
是否真的没有更新用户3密码的方法,而是必须加载整个文档,在客户端使用javascript进行更新,然后使用PUT请求将整个对象发送回来?
我希望我只是不太明白couchDB是如何工作的,并且希望事情能够完成。
如何更新可能非常大的对象的一部分?
发布于 2015-04-08 12:59:30
文档存储中的文档(如CouchDB )在概念上类似于关系数据库管理系统表中的行或文件系统中的文件,而不是表。
在您的示例中,您需要为myuser1
分离一个文档,一个用于myuser2
,另一个用于myuser3
,每个文档都很小,自成体系,因此易于快速更新。理想情况下,所有的文档都是这样的。
CouchDB指南有一个很好的章节介绍了CouchDB是什么以及为什么(以及什么时候!)它很有用。
发布于 2015-04-09 01:06:47
使用更新处理函数避免发送整个文档来更新部分部件。
如果文档文件,您将可以访问发送给和当前版本的数据。然后修改文档并将其返回给CouchDB。
https://stackoverflow.com/questions/29525168
复制相似问题