我有两个实体:
无论如何,我可以在CouchDB中组织我的文档,以便我可以使用以下格式查询员工( $ CouchDB是我的CouchDB实例的URL )?
$CouchDB/company/{companyId}/employee/{employeeId}
我知道我们可以将公司和员工文档混合在一个数据库中,并使用元字段(例如:“_ type”)和map / reduce来查询我们想要的文档。 “map / reduce”方法没有任何问题,只是想仔细检查以便我不会遗漏任何内容。
非常感谢,
答案 0 :(得分:1)
您可以不以这种方式整理文档。我同意,这是一个非常好的布局,但简短的回答是CouchDB不支持。
文档ID(和文档URL) flat 。它们都共享相同的命名空间。另一种说法是文档中的"_id"
值必须为其主键。
答案 1 :(得分:0)
虽然with some quirks,但文档_id
可以包含/
。然后company/COMPANYID/employee/EMPLOYEEID
是有效的ID。
我经常使用以下方案来构建文档的_id
(我更喜欢_
):
EntityName_ENTITYID
使用此_id
:
_type
字段; _all_docs?startkey="Company_"&endkey="Company_\fff0"
; _all_docs?startkey="Employee_COMPANYID_"&endkey="Employee_COMPANYID_\fff0"
;