Я использую Sequelize 5 в качестве ORM для моего GraphQL API, но я столкнулся с проблемой производительности при запросе связанных данных.
Допустим, у меня есть User
который имеет много Post
с, поэтому мои определения моделей выглядят так:
class User extends Model { }
User.init({ name: Sequelize.STRING }, { sequelize });
class Post extends Model { }
Post.init({ content: Sequelize.STRING }, { sequelize });
User.hasMany(Post);
Теперь я выбрал модель User
из базы данных и хочу запросить x
количество сообщений отэтот пользователь. Я знаю, что могу получить все сообщения, используя user.getPosts()
, но это вернуло бы гораздо больше записей, чем мне нужно.
Я нашел этот ответ , который объясняет, как применять ограничение при нетерпеливо загружая отношение, используя опцию include
, но в моем случае я хотел бы ленивая загрузка отношение. Причина этого в том, как работают распознаватели GraphQL.
Итак, мой вопрос: Как получить первые x
сообщений пользователя?