MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como buscar o próximo e o item anterior do atual com o Mongoose


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:
  1. Se você não usa mongodb ObjectId o código acima não funcionará para você, mas você ainda pode usar postDate em vez de id e post atual postDate em vez de curId .
  2. 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.
  3. Não estou familiarizado com o mongoose, então os scripts acima são os scripts de shell do mongodb.