PouchDB:过滤,排序和分页

时间:2017-01-12 08:32:24

标签: sorting couchdb pouchdb

与这两个CouchDB问题非常相似:33112258924793,但这些方法不允许部分匹配。有例如这些条目:

[{_id: 1, status: 'NEW', name: 'a'},
{_id: 2, status: 'NEW', name: 'aab'},
{_id: 3, status: 'NEW', name: 'ab'},
{_id: 4, status: 'NEW', name: 'aaa'},
{_id: 5, status: 'NEW', name: 'aa'}]

和键

[status, name, _id]

似乎没有办法

  1. 状态(完整字符串匹配)和名称过滤这些条目(部分字符串匹配〜startsWith
  2. id
  3. 订购
  4. 将他们分页
  5. 因为 name 上的部分字符串匹配。允许此部分匹配的high value unicode character \uffff也会导致忽略密钥的_id部分,这意味着结果条目不按_id排序,而是按状态和名称排序。

    var status = 'NEW';
    var name = 'aa'
    var query = {
        startkey: [status, name],
        endkey: [status, name + '\uffff', {}],
        skip: 0,
        limit: 10
    };
    

    结果

    [{_id: 5, status: 'NEW', name: 'aa'},
    {_id: 4, status: 'NEW', name: 'aaa'},
    {_id: 2, status: 'NEW', name: 'aab'}]
    

    没有选项可以在内存中进行排序,因为这只会对单个页面进行排序,而不是对整个数据集进行排序。有关于此的任何想法吗?

0 个答案:

没有答案