@PyTiMa
Учусь, кручусь, верчусь.

Как заставить express-paginate сортировать модель mongoDB в обратном порядке, по полю модели «idNum»?

И снова доброго времени суток_)
Есть модель юзера, в которой у каждого есть idNum, который вяжется ему при авторизации.
По докам express-paginate вроде нужно перейти по "localhost:8080/users?page=1&limit=10&idNum=-1", но оно все-равно не сортирует юзеров, как были - так и остались.
Может можно прямо тут (ниже код) указать сортировку?
app.get('/users', function (req, res) {
		User.paginate({}, req.query.page, req.query.limit, function(err, pageCount, users, itemCount) {

    		if (err) return next(err);

    		res.format({
				html: function() {
        			res.render('users', {
        				query: req.query,
        				page: 'users',
        				user: req.user,
        				users: users,
        				pageCount: pageCount,
    				   	itemCount: itemCount,
    			    });
    	  		},
    	  		json: function() {
    	  		  // inspired by Stripe's API response for list objects
    				res.json({
	        			object: 'list',
    			    	has_more: paginate.hasNextPages(req)(pageCount),
        				data: users
      				});
     		 	}
	    	});
		});
	});
  • Вопрос задан
  • 2808 просмотров
Решения вопроса 1
@PyTiMa Автор вопроса
Учусь, кручусь, верчусь.
Хех) а вот и решение: https://github.com/edwardhotchkiss/mongoose-paginate
В доках express-paginate не было описано, что:
/*
 * advanced example usage of `mongoose-pagination`
 * querying for `{ columns: 'title', { populate: 'some_ref' }, { sortBy : { title : -1 } }` items in `MyModel`
 * paginating by second page, 10 items per page (10 results, page 2)
 */

var mongoosePaginate = require('mongoose-paginate');

MyModel.plugin(mongoosePaginate)

MyModel.paginate({}, 2, 10, function(error, pageCount, paginatedResults, itemCount) {
  if (error) {
    console.error(error);
  } else {
    console.log('Pages:', pageCount);
    console.log(paginatedResults);
  }
}, { columns: 'title', populate: 'some_ref', sortBy : { title : -1 }); //Вот и оно!)

И используя express-paginate - тоже работает
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Сначала надо задать по какому полю сортировать вообще наверно

&sort=idNum&idNum=-1
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы