【发布时间】:2013-12-03 17:41:01
【问题描述】:
下面带有匹配结果集的调用会返回一个不以文档 ID a4a6cf44-8a82-494a-a2b9-f6a3ec629f17 开头的结果。正如下面的结果集所示,前 3 个键是相同的,但 startkey_docid 无效。
关于这个的几个问题
- startkey_docid 能否正确使用复杂的密钥? (这显然适用于 couchdb)
- 如果上面的回答是肯定的,我们认为问题的根源是 dateToArray(doc.created) 的使用吗?
- 这是一个错误吗?
查看:
function (doc, meta)
{
if(meta.type == "json" && doc.type == "POST")
{
emit([doc.category, dateToArray(doc.created), doc.visibility], null);
}
}
呼叫:
?startkey=["auto",[2013,10,10,23,12,0],"EVERYONE"]&endkey=["auto",[2013,12,11,23,12,0],"EVERYONE"]&startkey_docid=a4a6cf44-8a82-494a-a2b9-f6a3ec629f17
结果:
{
total_rows: 20,
rows: [{
id: "a4a6cf44-8a82",
key: ["auto", [2013, 11, 8, 1, 17, 46], "EVERYONE"],
value: null
}, {
id: "a4a6cf44-8a82-494a-a2b9",
key: ["auto", [2013, 11, 8, 1, 17, 46], "EVERYONE"],
value: null
}, {
id: "a4a6cf44-8a82-494a-a2b9-f6a3ec629f17",
key: ["auto", [2013, 11, 8, 1, 17, 46], "EVERYONE"],
value: null
}, {
id: "41070cfc-a85c-424c-9b87-fce0616c77c1",
key: ["auto", [
2013, 11, 11, 20, 28, 21], "EVERYONE"],
value: null
}, {
id: "bb275e3c-54da-4e85-8cc3-21defff4e278",
key: ["auto", [
2013, 11, 13, 1, 41, 7], "EVERYONE"],
value: null
}]
}
示例数据集。 post_id 是文档 ID。
{
type: "POST",
post_id: "a4a6cf44-8a82",
visibility: "EVERYONE",
userID: "<user_id>",
title: "Some title 1",
category: "auto",
description: "",
created: "2013-11-07 17:17:46 -0800",
modified: "2013-11-07 17:17:46 -0800"
}, {
type: "POST",
post_id: "a4a6cf44-8a82-494a-a2b9",
visibility: "EVERYONE",
userID: "<user_id>",
title: "Some title 2",
category: "auto",
description: "",
created: "2013-11-07 17:17:46 -0800",
modified: "2013-11-07 17:17:46 -0800"
}, {
type: "POST",
post_id: "a4a6cf44-8a82-494a-a2b9-f6a3ec629f17",
visibility: "EVERYONE",
userID: "<user_id>",
title: "Some title 3",
category: "auto",
description: "",
created: "2013-11-07 17:17:46 -0800",
modified: "2013-11-07 17:17:46 -0800"
}, {
type: "POST",
post_id: "41070cfc-a85c-424c-9b87-fce0616c77c1",
visibility: "EVERYONE",
userID: "<user_id>",
title: "Some title 4",
category: "auto",
description: "",
created: "2013-11-11 12:28:21 -0800",
modified: "2013-11-11 12:28:21 -0800"
}, {
type: "POST",
post_id: "bb275e3c-54da-4e85-8cc3-21defff4e278",
visibility: "EVERYONE",
userID: "<user_id>",
title: "Some title 5",
category: "auto",
description: "",
created: "2013-11-12 17:41:07 -0800",
modified: "2013-11-12 17:41:07 -0800"
}
【问题讨论】:
-
可能对
startkey_docid的格式敏感,不能像startkey那样用json编码。在我的测试中,这两个 URL 给出了不同的结果:node.avsej.net:8092/default/_design/test/_view/… 和 node.avsej.net:8092/default/_design/test/_view/… -
有趣。我注意到您没有使用复杂的密钥。如果您使用复杂的密钥,它仍然有效吗?您使用的是哪个版本的 Couchbase?
-
如果您将一些数据集转储到 json 中,我可以轻松检查。我的意思是把它添加到问题中
-
对不起 Avsej 你要什么?上述结果集的数据集来自视图?
-
是的,这样更容易运行相同的查询来重现案例
标签: couchbase