您好,我从dstore框架创建了restStore的实现。我在理解reststore中的queryLog和查询器方法的使用方面很费劲。
在内存中直接存储它。通过queryLog数组进行迭代,并对数据集应用过滤器和排序。我的情况是过滤和排序是在服务器端。我需要的是通过查询以进行过滤并排序以提供服务。
我已经根据dstore教程实现了fetch和fetchRange方法。在这些方法中,我解析queryLog数组以进行过滤和排序,然后将其传递给服务器。应该与queryLog数组做什么?从数组中删除已解析的查询?
fetchRange: function(kwArgs) {
var self = this;
var sortOpt = array.map(
array.filter(this.queryLog || [], function(item) {
return item.type === "sort"
}) || [], function(item) {
self.destroyUsedQueryLog(item);
return {
attribute: item.arguments[0][0].property || item.arguments[0][0].attribute,
property: item.arguments[0][0].property || item.arguments[0][0].attribute,
order: item.arguments[0][0].descending ? "DESC" : "ASC"
}
});
var queryOpt = array.map(
array.filter(this.queryLog || [], function(item) {
return item.type === "filter"
}) || [], function(item) {
self.destroyUsedQueryLog(item);
return item.arguments[0]
});
var options = {
sort: sortOpt,
start: kwArgs.start,
count: kwArgs.end - kwArgs.start
}
return this.query(queryOpt[queryOpt.length - 1] || {}, options);
},
destroyUsedQueryLog()函数从queryLog数组中删除已解析的查询。
query()函数接受过滤器查询,排序查询和调用休息服务,返回QueryResults