我有一个复合键["a", "b", "c", "d", "e"]
,我正在尝试使用python couchdb视图查询它。我通常一次关注其中一个键,不包括其他键。
例如,要查询key='a'
,我发现唯一可行的方法是:
results=db.view(docname, startkey=['a'], endkey=['azz']).
我认为{}
适用于key
,startkey
或endkey
,但它们似乎没有效果。
实际上,我通常会说:“查找所有包含"a"
和"b"
,或"a"
,"c"
和"e"
等的文档我已尝试为"a"
,"b"
,"c"
等单独查看并执行单独的查询,但有些查询是基于不是的关键字 - &gt ; e,例如"x"
,"y"
或"z"
。因此,对于那些人,我尝试使用看起来像["a", "b", "c", "d", "e", "z"]
的键来制作视图。这是非常昂贵的,时间明智地将整个文档带到'include_docs'
),我只需要输出a
,b
,c
,d
& {{ 1}}。
我正在尝试找到每个查询的复合键和最小文档传输的最佳组合。我认为如果我能够仅提取e
,然后仅提取"a"
等,它会起作用。
答案 0 :(得分:0)
我希望我理解正确:您正在尝试获取包含两个或更多值的文档。例如,这可能是标签。
您有两种可能性:
查看结果:
[{key: ["a"], id: 1, value: null}
{key: ["a", "b"], id: 1, value: null}
{key: ["a", "x"], id: 1, value: null}
{key: ["a", "b", "x"], id: 1, value: null}
{key: ["b"], id: 1, value: null}
{key: ["b", "x"], id: 1, value: null}
{key: ["x"], id: 1, value: null}]
使用include_docs,您可以在查询时获得相应的文档。请记住,这种方法使用了大量的磁盘空间。您可以使用此视图创建单个设计文档,以查看视图结果需要多少磁盘空间。
希望这有帮助!如果你提供了一个真实的例子,我可能会给出一个更好的答案; - )
你的,伯恩哈德