我正在尝试用Sequelize形成一个查询来加入并选择+限制。让我来说明问题:
我有多对多的关系:Book
- Reader
。读者可以有很多书,一本书可以有很多读者。
鉴于Book
的ID,我想浏览其所有Reader
。
这是我目前尝试过的,它有一些问题。首先,分页不起作用。其次,它仍会选择Book
以及Reader
的所有属性,当我只需要Reader
时(我扔掉所有Book
)。
/**
* Get all Readers of a Book.
*
* @param {Number} bookId id of the book
* @param {Number} limit number of readers to retrieve
* @param {Number} offset number of readers to skip
* @return {Promise} contains an array of readers
*/
function getBookReaders(bookId, limit, offset) {
return Book.findOne({
id: bookId,
include: [Reader],
limit: 10,
offset: 30
}).then(function(book) {
return book.readers;
});
}
有关如何正确形成此查询的任何建议吗?
答案 0 :(得分:0)
我不确定这是否真的有效,但将限制应用于您想要限制的模型是有意义的:
Book.findOne({
id: bookId,
include: [ { model: Reader, limit: 10, offset: 30 } ]
}).then(function(book) {
return book.readers;
});