请帮帮我
我创建了一个名为Product
的数据库我创建了2个ID为“P101”,“P102”
的产品文档{ “_id”:“P101”, “_rev”:“5-8d1c4b5b7f6e65a5997d4ec5b4346e5f”, “类型”:“产品”, “名字”:“衬衫”, “hersteller”:“oska”, “价格”:11.15 }
{ “_id”:“P102”, “_rev”:“3-8ad956f0c524b1a2396ebdda1ed0afbe”, “类型”:“产品”, “名字”:“套头衫”, “hersteller”:“极致”, “价格”:7.58 }
现在添加了一个订单文档,其中'P101'作为其父
{ “_id”:“ORD-101”, “_rev”:“7-dbd8cca3b6dc9f4cb3b8bb7e4aec6630”, “type”:“order”, “orderDate”:“01.01.2012”, “parentProdct”:“P101” }
现在我添加了报告文档,其中'ORD-101'作为其父
{ “_id”:“REPORT-101”, “_rev”:“10-c57e3c039a44d95d6bd40d8a83a951da”, “type”:“REPORT”, “parentOrder”:“ORD-102” }
在此之后,我已经添加了具有相应视图功能的设计文档
{
“_id”:“_ design / proddesign”,
“_rev”:“87-d1b0a8c8cdfe569bbf9805df4918af4f”,
“rev”:“3-productrev”,
“意见”:{
“第五”: {
“map”:“function(doc){if(doc.type =='REPORT'){emit(doc._id,{_ id:doc.reportDet});}}”
}
}
}
.. 这只给我父母关闭报告文件。实际上我也要打印订单文件的相应父母的详细信息。
即细节'P101'也.. ..
我怎样才能实现......帮助
答案 0 :(得分:0)
假设以下数据(注意:从您的示例中删除了_rev和未使用的文档):
{
"_id": "P101",
"type": "product",
"name": "Shirt",
"hersteller": "oska",
"price": 11.15
}
{
"_id": "ORD-101",
"type": "order",
"orderDate": "01.01.2012",
"product": "P101"
}
{
"_id": "REPORT-101",
"type": "REPORT",
"order": "ORD-101",
"product": "P101"
}
您希望按照以下方式执行以下操作:
if doc.type == "product"
emit([doc.id], doc.type)
if doc.type == "order"
emit([doc.product, doc.id], doc.type)
if doc.type == "report"
emit([doc.product, doc.order, doc.id], doc.type)
这将导致视图输出如下:
[
[["P101"], "product"],
[["P101", "ORD-101"], "order"],
[["P101", "ORD-101", "REPORT-101"], "report"]
]
如果您使用
查询?startkey=["P101"]&endkey=["P101",{}]
将为您提供产品P101以及该产品的所有订单和报告。