Então vamos supor que você tenha um esquema como este:
{
_id,
text
}
Suponho que _id seja mongo ObjectId, então ele contém data de postagem e eu posso classificá-lo
Vamos considerar que eu abri a postagem atual com id igual a
ObjectId( "43cc63093475061e3d95369d")
(em vez disso, usarei curId
) e eu preciso saber o próximo e o anterior. Também vamos considerar que precisamos obter todos os posts um por um ordenados por data de criação decrescente:Obter próximo post você pode gostar deste:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Obter postagem anterior, você pode gostar disso:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Poucas coisas:
- Se você não usa mongodb
ObjectId
o código acima não funcionará para você, mas você ainda pode usarpostDate
em vez de id e post atual postDate em vez decurId
. - Tenha cuidado com a ordem ao obter as próximas postagens/anteriores, para recuperar a próxima postagem, você precisa classificar asc, para recuperar a postagem anterior, precisa classificar desc.
- Não estou familiarizado com o mongoose, então os scripts acima são os scripts de shell do mongodb.