мангуст: сортировка по идентификатору

#node.js #mongodb #mongoose

#node.js #mongodb #мангуст

Вопрос:

mongo db переупорядочивает документы при обновлении документа. Я не хочу, чтобы это произошло, поэтому я обнаружил, что использование order by _id вернет документы в согласованном порядке. Но теперь я не могу сортировать. Ниже приведен мой запрос поиска, который находит сообщения, созданные конкретным пользователем, и я пытаюсь отсортировать по _id . Код:

 app.get('/posts/:user_id',function(req,res){

posts.find({
    'creator.user_id':req.params.user_id
},[],{ sort: { '_id': -1 } },function(err,userpost){
    if(err)
        res.send(err);
    res.json(userpost);


})

});
  

Ответ №1:

Второй параметр предназначен для выбора полей. Вам нужно добавить опции к третьему параметру:

 posts.find({'creator.user_id': req.params.user_id}, null, {sort: {'_id': -1}}, function(err,userpost) {
    if(err)
        res.send(err);
    res.json(userpost);
});
  

В качестве альтернативы вы можете использовать sort() функцию:

 posts.find({'creator.user_id': req.params.user_id}).sort({'_id': -1}).exec(function(err,userpost) {
    if(err)
        res.send(err);
    res.json(userpost);
});
  

Вы можете найти больше примеров в документации.