CouchDB偏移量为1,但查询返回空
我正在测试CouchDB v2.3.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",
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
}