Sequelize是在筛选属性时对结果进行分组
Sequelize is grouping results when I filter the attributes
我有一个包含多列的表,当我使用attributes选项(过滤掉一些列)执行findAll时,sequelize似乎是根据这些列的值对结果进行分组。
在日志中,我可以看到创建的SQL语句,并且它没有按任何内容进行分组。
你知道可能会发生什么吗?
编辑
正在添加findAll代码。
findAll: function (options, expanded, fields) {
var deferred = Q.defer();
var findAllOptions = {};
if(fields != null) {
findAllOptions.attributes = fields;
}
if(expanded != null) {
findAllOptions.include = expanded;
}
if(options.offset != undefined) {
findAllOptions.offset = options.offset;
}
if(options.limit != undefined) {
findAllOptions.limit = options.limit;
}
if (this.Class.Model !== null) {
this.Class.Model.findAll(findAllOptions).success(deferred.resolve).error(deferred.reject);
} else {
//--- error handling not important
}
return deferred.promise;
}
我也用Q来表示承诺,尽管我认为这并不重要。
当不使用"order by"时,postgresql将以它认为最有效的顺序返回数据。若您的查询包含一个谓词(where语句的一部分),该谓词引用了作为索引一部分的列,则很可能会按照索引本身的相同顺序返回数据。
I.E.如果我运行查询:
select * from person
我可以按照以下顺序得到以下结果:
ID FIRST LAST
------------ ---------------- -----------------
1 John Zane
2 Jack Smith
3 Aaron Smith
4 Darren Thompson
5 Dick Smith
它们可能会按顺序返回,因为它们只是以postgresql能够找到它们的最快方式从表中选择的,这可能恰好是它们插入的顺序。
现在,如果我运行查询:
select * from person
where last='Smith'
假设我有一个关于人的索引(最后一个,第一个),我很可能会得到以下结果,按顺序排列:
ID FIRST LAST
------------ ---------------- -----------------
3 Aaron Smith
5 Dick Smith
2 Jack Smith
原因是优化器可能会使用索引来检索数据,并且索引中按该顺序列出了行。
相关文章:
- 计数HTML表中筛选的结果
- 返回带有筛选结果的新JSON对象
- 通过XML结果进行筛选
- 使用复选框筛选结果
- 复选框筛选结果
- 使用Javascript从DB中筛选结果,这将使DIV重新加载它'基于新参数的内容
- 使用jquery或JS从现有值集中筛选结果
- 如果文本筛选器在ng重复中未返回结果,则显示消息
- 如何根据其他下拉列表中的选择筛选下拉结果
- Sequelize是在筛选属性时对结果进行分组
- 如何使用URL参数筛选表中的结果
- j查询筛选结果
- 使用单个 ng 模型筛选结果并显示筛选方法
- 使用自定义按钮筛选结果
- 如何从视图中的控制器筛选结果
- j查询搜索结果筛选
- 角度筛选器 - 根据值数组筛选 JSON 结果
- JQuery 非重复后代(筛选出结果集中的所有父项)
- 筛选表并显示匹配结果 - jQuery
- 键控包含用于阻止结果的筛选