曾经尝试使用PouchDb(Angular 5)脱机数据库,并且在索引,搜索和排序方面花费了很多时间。
现在,与任何系统一样,我们必须实现搜索和任意组合的排序。我们以创建排序索引字段为第一个字段的方式创建了不同的索引,然后专门在find命令中添加了use_index。
但是,这仍然给我们类似“无可用索引可用”的错误,如果我们添加任何搜索词,我们甚至尝试添加$ gt:null作为第一个条件,以便第一个搜索列和排序字段匹配。只是违抗逻辑。
正确的方法是什么?例如,如果我想按date_created和association_id查找,然后按location_name排序?有没有人成功地用不同的搜索和排序列实现了芒果查询?
index:
{
fields: ['location_name','date_created','association_id','association_title'] ,
ddoc: 'my_idx',
}
db.find({
selector: {$and: [
'location_name': {$gt: null},
'date_created': {$eq: my_date},
'association_id': {$eq: my_assoc_id}
]},
sort: ['location_name'],
limit: maxPerPage,
skip: (page-1)*maxPerPage,
fields:['location_name','date_created', 'association_title'],
use_index: 'my_idx'
});