@BogdanZots

Как работает limit и offset в node js / sequelize, почему возвращает не то что я ожидаю?

Всем привет , у меня в базе данных есть 5 элементов с такими полями .
1) id: 13,
      name: 'name1',
     2) id: 103,
      name: 'name2',
     3) id: 105,
      name: 'name3',
     4) id: 113,
      name: 'name4',
     5) id: 115,
      name: 'name5',

Я хочу получить последние 3 элемента , для этого я используюsequelize limit , offset . В node js я написал такой код
async getAll(req, res) {
    let { limit, page } = req.query;
    limit = 5
    let offset =2
    const targets = await TargetsTasks.findAll({ limit, offset  });
    return res.json(targets.sort((a, b) => a.id - b.id));
  }

Но я получаю
[
    {
        "id": 13,
        "name": "test5112",
    },
    {
        "id": 113,
        "name": "4",
    },
    {
        "id": 115,
        "name": "5",
    }
]

Тобеж я получаю самый первый элемент , 4 тый и 5 тый . Что я делаю не так ? Может я чего то не понимаю ? Помогите пожалуйста!
  • Вопрос задан
  • 843 просмотра
Решения вопроса 1
GeorgeGeorge
@GeorgeGeorge
Студент
пример с page & limit:
const page = req.query.page
    const limit = req.query.limit
    const startIndex = (page - 1) * limit
    const endIndex = page * limit
    const data = await db.User.findAll()
    const result = data.slice(startIndex, endIndex)
    res.status(200).json(result)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы