以下是一些示例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(有相同的问题)

最佳答案

不幸的是,您不能使用P / CouchDB _ids在字符串的“内部”搜索-您只能进行前缀搜索。当然,前缀搜索不能解决整数问题,因为就字符串而言,1 < 10 < 2

一种选择是直接使用pouchdb-collate。因此,例如,您的ID可以由[2, 'someText']之类的对象生成。尽管缺点是很难搜索'someText',但这使您可以轻松地搜索某个值以上和以下的整数。

另一个选择是只是硬着头皮,使用map / reduce或pouchdb-find。如果您的查询需求足够复杂,则可能必须这样做。

关于javascript - 滥用pouchDB的doc ID:获取第一个前缀元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35762450/

10-11 19:23