添加限制sequelize findAll破坏查询?

我试图返回一组Model ,使用limitoffset分页,包括该模型的collections夹的分组计数。 一个相当微不足道的事情来尝试。

这是我的基本查询设置与sequ​​elize:

 var perPage = 12; var page = 1; return Model.findAll({ group: [ 'model.id', 'favorites.id' ], attributes: [ '*', [ Sequelize.fn('count', Sequelize.col('favorites.id')), 'favorites_count' ] ], include: [ { attributes: [], model: Favorite }, ], offset: perPage * page 

这生成(相当)预期的查询:

 SELECT "model"."id", "model".*, Count("favorites"."id") AS "favorites_count", "favorites"."id" AS "favorites.id" FROM "model" AS "model" LEFT OUTER JOIN "favorite" AS "favorites" ON "model"."id" = "favorites"."model_id" GROUP BY "model"."id", "favorites"."id" offset 12; 

忽略它引用表的事实,并且selectfavorites.id (迫使我将它添加到group by子句中),并且它已经将事物随机地混淆到它们的确切名称或一个无意义的名称,如"favorites.id" (所有不想要的),似乎已经奏效。 但现在让我们来完成分页,并添加限制到查询:

 ... offset: perPage * page limit: perPage 

它现在生成这个查询:

 SELECT "model".*, "favorites"."id" AS "favorites.id" FROM (SELECT "model"."id", "model".*, Count("favorites"."id") AS "favorites_count" FROM "model" AS "model" GROUP BY "model"."id", "favorites"."id" LIMIT 12 offset 12) AS "model" LEFT OUTER JOIN "favorite" AS "favorites" ON "model"."id" = "favorites"."model"; 

在完全莫名其妙的行为中,它产生了一个内部查询,并将限制仅应用于该限制,然后将其作为"model"进行别名。

作为一个完整的检查,我查找了findAll的文档,但文档似乎并不认为该命令存在 。

我怀疑我做错了什么,但是我弄不清楚它是什么。 这种行为是相当的bizzarre,我希望我的睡眠剥夺是我的困惑的原因。

我正在使用2.0.6版本