Сортировка данных A-Z / Date из router.get?

#node.js #mongodb #express #mongoose

#node.js #mongodb #экспресс #мангуст

Вопрос:

Быстрый вопрос: как я могу отсортировать данные своих сообщений по дате?

 router.get('/', async (req, res) => {
    try {
        const posts = await Post.find()
        res.json(posts)
    }
    catch (err) {
        res.json({message: err})
    }
})
  

Я пришел из Django, и там вы могли бы сделать что-то вроде:

 posts = Post.objects.filter().order_by('date')
  

Я довольно новичок в NodeJS и Express. Большое спасибо!

Ответ №1:

Это зависит от того, какова структура данных свойства date. Если они находятся в формате временной метки JS:-

 router.get('/', async (req, res) => {
    try {
        const posts = await Post.find();

        const sortedPosts = posts.sort((a,b) => {
          return new Date(b.date) - new Date(a.date);
        });

        res.json(sortedPosts)
    }
    catch (err) {
        res.json({message: err})
    }
})
  

Здесь я использовал метод массива sort() . Узнать больше

Комментарии:

1. Большое вам спасибо! Благослови Бог! 🙂