Nodejs Создание модуля нумерации страниц goose, который смешивает буферный массив и данные из mongodb - PullRequest
0 голосов
/ 07 января 2020

Таким образом, у меня есть проблема, в которой я хотел бы смешать массив данных и массив информации, поступающей из mongoDB, но также включающей нумерацию страниц. Примером может быть:

Допустим, наш буфер содержит 15 элементов.

Мы хотим получить страницу 1 с 10 элементами на странице , поэтому Я бы взял qtd = 0 и page = 1 , 0 элементов из mongoDB плюс 10 элементов из буфера.

Теперь page 2 , мне нужно захватить 5 элементов из буфера и 5 из mongoDB , поэтому теперь мне нужно использовать find () с qtd = 5 и page = 0

Страница 3, элементы 5-15 из MongoDB, 0 из буфера, qtd = 10, страница = 0,5

Мой код сейчас выглядит так:

exports.getOrders = function (req, res) {
    var qtd = (req.query.qtt) ? parseInt(req.query.qtt) : 10
      , page = (req.query.page) ? parseInt(req.query.page) : 0;

    var numberOfDocs;
    Order.count({}, function (err, count) {numberOfDocs = count;});
    Order.find({}).sort([['Filter1', -1],['Filter2',-1]]).limit(qtd).skip(page * qtd ).exec(function (err, orders) {
        if (err) {
            res.json({
                status: "error",
                message: err,
            });
        } else {
            res.json({
                status: "success",
                message: "Orders retrieved successfully",
                data: orders,
                perPage: qtd,
                page: page,
                totalElems: numberOfDocs
            });
        }
    });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...