0

我有一个数据库,其中包含以下形式的文档:

{“类型”:“A”,“日期”:“2013-09-19”,“周”:“A”,“日”:“周一”}

{“类型”:“B”,“周”:“A”,“日”:“周一”,“班级”:“xyz”}

如何创建一个视图来列出特定日期(来自 doc.Type = "A")的所有类(来自 doc.Type = "B")?本质上,它意味着匹配“周”和“日”字段。我找到了示例(主要基于 Christopher Lenz 的解决方案),但这些示例仅基于匹配的一个字段进行匹配,这在其中一种文档类型中是唯一的。

更新

为了澄清@Daniel的回应:

我希望能够在 URL 查询中输入日期。这将匹配类型“A”的文档。由此,我想要所有类型 B 文档与原始类型 A 具有相同的 Week 和 Day 值。

4

1 回答 1

0

读到这里,我看不出如何在沙发上只用一个查询(一次只能查询一个视图)来完成它,因为文档类型 B 没有date字段。No datein doc type B 使得使用复合键的单个视图成为不可能。您可以在两个查询中轻松完成,无需更改/重组文档。

第一个查询,通过date类型 A 视图将为您提供第二个查询所需的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); 
            } 
        }"
   },

现在您将拥有与原始查询匹配的 Bweekday文档date

LMK 如果您需要更多信息 :-)

于 2013-09-20T19:30:43.820 回答