CouchDB视图返回带有复杂键的空行,用于Date数组比较

lev*_*ker 2 couchdb key

我有一个名为"report_data_by_date"的视图,基本上是这样的:

function(doc)
{
  if (doc.report_completed_timestamp)
  {
    emit(doc.report_completed_timestamp, doc);
  }
}
Run Code Online (Sandbox Code Playgroud)

发出类似这样的东西:

{
        "id": "eade1035fb3dc87baba8bdf64b043c2c",
        "key": [
            2011,
            11,
            9,
            14,
            1,
            26,
            305
        ],
        "value": { /*the doc*/}
}
Run Code Online (Sandbox Code Playgroud)

当我查询视图时,像这样:

http://.../_design/ReportMetaData/_view/report_data_by_date
Run Code Online (Sandbox Code Playgroud)

我收回了预期的结果.

但是,当我尝试使用密钥查询(仅匹配某些日期)时,如此(但正确的URL编码):

http://.../_design/ReportMetaData/_view/report_data_by_date?key=[2011,{},{},{},{},{},{}]
Run Code Online (Sandbox Code Playgroud)

我得到这样的东西:

{"total_rows":16,"offset":16,"rows":[]}
Run Code Online (Sandbox Code Playgroud)

行是空数组.我希望能够收回2011年一年的行数.

我觉得我错过了一些非常微不足道的东西,但尽管我找不到,但我找不到答案.

谢谢你的帮助!

Rya*_*age 7

它没有返回的原因是您可能没有确切的密钥:[2011,{},{},{},{},{},{}]在您的数据中.视图的关键参数只会返回完全匹配.

如果您想在2011年使用所有密钥,则可能需要使用启动密钥结束密钥.我没有测试你的确切查询,但它可能看起来像这样:

report_data_by_date?startkey = [2011]&endkey = [2011,{},{},{},{},{},{}]