CouchDB数据库模型
我有两个实体:
无论如何,我可以在CouchDB中组织我的文档,以便使用以下格式查询员工($ CouchDB是我的CouchDB实例的URL)?
$CouchDB/company/{companyId}/employee/{employeeId}
我知道我们可以将公司和员工文档混合到一个数据库中,并使用元字段(例如:“_type”)和map / reduce来查询我们想要的文档。 “map / reduce”方法没有问题,只需要仔细检查一下,这样我就不会错过任何东西。
非常感谢,
您无法以这种方式组织您的文档。 我同意,这是一个非常好的布局,但简短的答案是,CouchDB不支持。
文档ID(和文档URL)是平坦的。 它们都共享相同的命名空间。 另一种说法是,文档中的"_id"
值必须是其主键。
尽管有一些怪癖,文档_id
可以包含/
。 然后company/COMPANYID/employee/EMPLOYEEID
是有效的ID。
我经常使用以下方案来构建文档的_id
(我更喜欢_
):
EntityName_ENTITYID
有了这个_id
:
_type
字段; _all_docs?startkey="Company_"&endkey="Company_fff0"
公司_all_docs?startkey="Company_"&endkey="Company_fff0"
; _all_docs?startkey="Employee_COMPANYID_"&endkey="Employee_COMPANYID_fff0"
获得公司内的所有员工_all_docs?startkey="Employee_COMPANYID_"&endkey="Employee_COMPANYID_fff0"
; 下一篇: How to take the average of big data in MongoDB vs CouchDB?