Таким образом, у меня есть проблема, в которой я хотел бы смешать массив данных и массив информации, поступающей из 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
});
}
});
};