CouchDB偏移量为1,但查询返回空

CouchDB偏移量为1,但查询返回空,couchdb,Couchdb,我正在测试CouchDB v2.3.1,但在理解特定结果时遇到困难 这是由自定义视图过滤的当前数据库状态: curl 'http://127.0.0.1:5984/music/_design/albums/_view/_by_name' | json_pp { "offset" : 0, "total_rows" : 3, "rows" : [ { "id" : "42dc72485892b5de28807f28130016c6",

我正在测试CouchDB v2.3.1,但在理解特定结果时遇到困难

这是由自定义视图过滤的当前数据库状态:

curl 'http://127.0.0.1:5984/music/_design/albums/_view/_by_name' | json_pp
{
   "offset" : 0,
   "total_rows" : 3,
   "rows" : [
      {
         "id" : "42dc72485892b5de28807f28130016c6",
         "value" : {
            "by" : "The Beatles",
            "album" : {
               "title" : "Abbey Road",
               "year" : 1969
            }
         },
         "key" : "Abbey Road"
      },
      {
         "value" : {
            "album" : {
               "year" : 1965,
               "title" : "Help!"
            },
            "by" : "The Beatles"
         },
         "key" : "Help!",
         "id" : "42dc72485892b5de28807f28130016c6"
      },
      {
         "id" : "42dc72485892b5de28807f28130016c6",
         "value" : {
            "by" : "The Beatles",
            "album" : {
               "title" : "Sgt. P",
               "year" : 1967
            }
         },
         "key" : "SGt. P"
      }
   ]
}
如你所见,我有3行(披头士专辑),谁的关键是专辑名

现在,下面的查询返回偏移量1。正如您在上面看到的,没有一行具有名为“Hel!”的键。请注意,我正在使用
key=“Hel!”
query参数过滤查询

curl 'http://127.0.0.1:5984/music/_design/albums/_view/_by_name?key="Hel!"' | json_pp
{
   "offset" : 1,
   "total_rows" : 3,
   "rows" : []
}
现在,下面的查询返回偏移量2。正如您在上面所看到的,没有一行具有名为“no-soke-namea!”的键

答复如下:

偏移量是给定查询的第一个匹配行视图中的索引

我知道,如果存在匹配项,则偏移量应该是未筛选视图上的索引,即返回行的第一个匹配项的索引

因此,我不理解为什么在前面的两个示例中偏移量不是0


感谢您抽出时间。

我的读者让我注意到答案与我提供的链接相同

如果视图中没有直接键查询的条目,则 offset value是进入视图的索引,如果它 有想要的钥匙。”


链接的答案还指出:“如果视图中没有用于直接键查询的条目,则偏移量值是指向视图的索引,如果该条目具有所需的键,则该索引将位于该视图中。”@uminder谢谢
curl 'http://127.0.0.1:5984/music/_design/albums/_view/_by_name?key="No-such-namea"' | json_pp
    {
   "rows" : [],
   "total_rows" : 3,
   "offset" : 2
}