我有一个包含以下形式文档的数据库:
{“Type”:“A”,“Date”:“2013-09-19”,“Week”:“A”,“Day”:“Mon”}
{“Type”:“B”,“Week”:“A”,“Day”:“Mon”,“Class”:“xyz”}
如何创建一个视图,列出特定日期的所有类(来自doc.Type =“B”)(来自doc.Type =“A”)?基本上它意味着匹配“周”和“日”字段。我找到了一些示例(主要基于Christopher Lenz的解决方案),但这些示例仅基于匹配的一个字段进行匹配,这在一种文档类型中是唯一的。
要回应@Daniel澄清:
我希望能够在URL查询中输入日期。这将匹配类型“A”doc。由此,我希望所有类型B文档具有与原始类型A相同的周和日值。
答案 0 :(得分:0)
阅读本文,我不知道如何使用一个查询在Couch中完成它(您一次只能查询一个视图),因为文档类型B没有{{1} }字段。文档类型B中没有date
使得单个视图无法使用复合键。您可以在两个查询中轻松完成,无需更改/重组文档。
在{A}视图上按date
进行的第一次查询将为您提供第二次查询所需的date
和day
值。
第二个查询将针对具有类似这样的复合键的视图运行...
week
现在,您将拥有与原始"views": {
"type-A-by-date": {
"map": "function(doc) {
if (doc.type && (doc.type == 'A') {
emit([doc.date], [doc.week,doc.day]);
}
}"
},
"type-B-by-week-day": {
"map": "function(doc) {
if (doc.type && doc.type == 'B') {
emit([doc.week,doc.day], doc);
}
}"
},
查询匹配的week
和day
的B类文档。
LMK如果您需要更多信息: - )