4

我正在为我的 Web 应用程序使用 CouchDB 1.1.1——到目前为止一切都很好(保存/检索文档、保存/查询视图等),但我被困在查询特定组级别的特定键的视图上.

在我看来,map 函数以以下格式输出键:[“Thing 1”“Thing 2”]。我有一个 reduce 函数,它工作正常,并为组级别 1(即“事物 1”)和组级别 2(即“事物 2”)输出正确的值。

现在——当我查询 couchdb 时,当我设置 reduce = true(默认)、group_level = 2(或 group = true,在这种情况下是相同的,因为我只有 2 个级别)和 key = 时,我只能抓取一个特定的键“想要的钥匙在这里。” 我还可以使用 keys = ["key1" "key2"] 查询多个键。

但是——我真的希望能够为 group_level=1 获取一个特定的密钥,但我无法让它工作。它似乎什么都不返回,或者如果使用发布请求,它会返回所有内容。永远不要只有我需要的一把钥匙。

这是我一直在使用的 couchdb http view api(查询选项)的链接: http ://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

它包含以下句子:“注意:对 reduce 函数的多键请求仅支持 group=true 和 NO group_level(与 group_level=exact 相同)。生成的错误是“Multi-key fetchs for reduce view must include group=true” "

我不确定这是否意味着我无法执行上述操作(获取特定 group_level 的特定密钥)。这似乎是 couchdb 的一个大问题,所以我假设我做错了什么。

有任何想法吗?谢谢

4

1 回答 1

2

我也打过这个。不过,我不确定这是否是一个错误。

尝试以正常(2 项)格式使用您的startkeyand 。endkey你想要一个结果["Thing 1", *](显然是伪代码,星号代表任何东西)。减少与group_level=1将所有这些归结为一行。

因此,可以这么说,基本上查询 Thing 1“命名空间”中的所有内容。由于要整理的“最小”值是null,而“最大”值是 object {},因此它们为您的范围提供了很好的书挡。

?group_level=1&startkey=["Thing 1",null]&endkey=["Thing 1",{}]

这会给您所需的结果吗?

于 2012-05-30T12:48:05.113 回答