【发布时间】:2021-12-10 22:50:23
【问题描述】:
在我的数据库中,我(不仅)有两种类型的文档处于一对多关系中。我尝试像以下示例所示那样管理它:
{
_id : "class:xyz"
type: "class"
... other keys ...
}
{
_id : "class:xyz:pupil:abc"
type: "pupil"
... other keys ...
}
如果我使用 allDocs() 像查询我的文档
http://url_of_my_server:5984/my_database/_all_docs?include_docs=true&?startkey="class:xyz:pupil:"&endkey="class:xyz:pupil:\ufff0"
我得到了所有与提到的class 类型的文档相关的pupil 类型的文档,就像想要的一样。
为了提高性能,我想引入一个设计文档来仅查询 pupil 类型的文档,而不是每次都查询所有文档:
{
"_id": "_design/types",
"language": "javascript",
"views": {
"classes": {
"map": "function(doc){ if(doc.type == \"class\"){emit(doc.id, doc);} }"
},
"pupils": {
"map": "function(doc){ if(doc.type == \"pupil\"){emit(doc.id, doc);} }"
},
}
}
但是如果我像这样查询这个设计文档
http://url_of_my_server:5984/my_database/_design/types/_view/pupils?include_docs=true&?startkey="class:xyz:pupil:"&endkey="class:xyz:pupil:\ufff0"
我没有得到任何结果(只有一个空数组/没有行)。
我的错误在哪里或我的概念有什么问题?我真的不知道吗?提前感谢您的建议。
【问题讨论】:
-
该 URL 在某些方面不好,即它需要一些 percent encoding,例如
:已保留。也摆脱双引号。修复 URL,您应该会得到结果。 -
感谢您的回复,但将
:更改为%3A和"更改为%22并不会改变任何事情。 -
是的,你是对的