[Workshop] Как се сортират въпросите по датата на техните отговори
Здравейте, някой може ли да ми каже как се сортират въпростите по датите на техните отговори?
Това е моята схема на въпросите
var threadSchema = mongoose.Schema({
title: {
type: String,
required: true
},
description: {
type: String,
required: true
},
author: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
publishTime: {
type: Date,
default: Date.now
},
answers: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Answer'
}]
})
Не съм го правил още.Тази вечер ще го умувам.В нета пише много неща.Ако никой не е писал до тогава ще споделя какво съм открил:)
Някой пребори ли pagination-a? Ако може да споделите някакви варианти ще е супер.
След дълго ровене открих нещо много елегантно.Без допълнителни пакети и т.н.Прераборих си го сам.При мен работи, разгледайте го и вие за грешки:).
Контролер:
paging: (req, res) => {
let next
let prev
let page = parseInt(req.params['page']) || 1
let num = page * 20
Thread.count({})
.then(total => { let pages = Math.ceil(total / 20)
if (num < total) { next = true }
if (num > 20) { prev = true }
Thread.find({}).sort({lastAnswerDate: 'desc'}).skip(20 * (page - 1)).limit(20)
.exec()
.then(t => {
if (page > pages) { res.redirect('/pages/' + pages) }
res.render('threads/paging', { page: page, prev: prev, next: next, threads: t })
})
})
}
View:
ul.list
each val in threads
li=val.title
if (prev)
a(href="/pages/"+(page - 1) ) Previous
if (next)
a(href="/pages/"+ (page + 1) ) Next
Router:
app.get('/pages/:page', controllers.threads.paging)
В работен вариант е но мисля че върши работа..