滥用pouchDB的文档ID:获取第一个前缀元素

时间:2016-03-03 03:09:03

标签: javascript database key pouchdb

以下是一些示例ID:

someText_1
someText_2
someText_3
someOtherText_1
someOtherText_2

我想获得下划线后具有最高数值的“someText”元素:someText_3

allDocs({startkey: 'someText_', endkey: 'someText_\uffff'});

会导致所有“someText _” - 元素。 有没有办法只收到“someText_3”?我想避免map / reduce查询,因​​为保证的本地存储空间非常有限。

我已经读过:

http://pouchdb.com/2014/05/01/secondary-indexes-have-landed-in-pouchdb.html(何时不使用map / reduce)

Pouchdb document id complex key(有同样的问题)

1 个答案:

答案 0 :(得分:1)

很遗憾,你无法搜索&#34;内部&#34;带有P / CouchDB _ids的字符串 - 您只能进行前缀搜索。当然,前缀搜索不能解决整数问题,因为就字符串而言,1 < 10 < 2

一种选择是直接使用pouchdb-collate。例如,您的ID可以从[2, 'someText']之类的对象生成。这使您可以轻松搜索高于和低于某个值的整数,但缺点是它使搜索'someText'变得困难。

另一种选择是咬住子弹并使用map / reduce或pouchdb-find。如果您的查询需求足够复杂,则可能需要。