使用默认索引时,无法对字段xxx进行排序

问题描述 投票:1回答:1

我有以下pouchdb查询,我没有看到这里有任何问题,但它抛出错误Cannot sort on field(s) "createTime" when using the default index。关于如何解决这个问题的任何想法?每次查询时我都要做createIndex吗?

let getData = () => {
  let re = new RegExp('2017-09-06')
  db.createIndex({
    index: {
      fields: ['createTime'],
    }
  }).then((result)=>{
    return db.find({
      selector: {createTime: {$regex:re}},
      fields: ['createTime'],
      sort: ['createTime']
    }).then(function (result) {
      // handle result
      debugger
    }).catch(function (err) {
      console.log(err)
      debugger
    });
  })

}
pouchdb
1个回答
3
投票

我真的不知道为什么,但添加带有'gt:null'的选择器似乎适用于我的情况。我正在使用pouchDB v 6.4.1。你能试试这些:

db.createIndex({
  index: {
    fields: ['createTime'],
  }
}).then((result) => {
  return db.find({
    selector: {
      $and: [
        { createTime: {'$gt': null} },
        { createTime: {'$regex': new RegExp('2017-09-06')}} }
      ]
    },
    fields: ['createTime'],
    sort: ['createTime']
  }
);
© www.soinside.com 2019 - 2024. All rights reserved.