在couchdb-python中查询复合键

2024-09-23 03:52:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个复合键["a", "b", "c", "d", "e"],并试图使用python couchdb view查询它。我通常一次只需要一把钥匙,其他钥匙除外。在

例如,要查询key='a',我发现唯一有效的方法是:

results=db.view(docname, startkey=['a'], endkey=['azz']).

我以为{}keystartkey或{}一起工作,但似乎没有效果。在

事实上,我通常是这样的:“找到所有拥有"a",和{{>},或者拥有{{},"c"},和{}}等的所有文档文档。我试着对^{{},^{{>},^{{},^{{},^{{}})等的独立视图,并进行单独的查询,做了单独的查询,但有些查询中的一些查询是基于不属于(e)e的关键字,如{},^{{},^{{},"y"}}{}}}}。我或者"z"。因此,对于这些,我尝试使用如下键创建视图:["a", "b", "c", "d", "e", "z"]。带来整个文档(使用'include_docs')非常昂贵,而且我只需要输出abcd&;e。在

我试图找到组合键和每个查询的最小文档传输的最佳组合。我想如果我能弄清楚只取"a",那么"b"就可以了,等等


Tags: 方法key文档view视图db关键字results
1条回答
网友
1楼 · 发布于 2024-09-23 03:52:20

我希望我能正确地理解您:您正在尝试获取包含两个或多个值的文档。例如,这可能是标记。在

你有两种可能:

  1. 使用全文搜索引擎,如couchdb-lucene或elasticsearch
  2. 为每个关键点组合发射一个关键点。对于带有标记[“a”、“b”、“x”]的文档,您将发出:

结果视图:

[{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\u docs可以在查询时获得相应的文档。但请记住,这种方法占用大量磁盘空间。您可以用这个视图创建一个设计文档来查看视图结果需要多少磁盘空间。在

希望这有帮助!如果你提供一个真实的例子,我可能会给出一个更好的答案;-)

你的,伯恩哈德

相关问题 更多 >