sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo obtener el elemento siguiente y anterior del actual con Mongoose

Así que supongamos que tiene un esquema como este:

{
 _id,
 text    
}

Supongo que _id es mongo ObjectId, por lo que contiene la fecha de publicación y puedo ordenarla

Consideremos que he abierto la publicación actual con una identificación igual a ObjectId( "43cc63093475061e3d95369d") (en lugar de esto usaré curId ) y necesito saber el siguiente y el anterior. También consideremos que necesitamos obtener todas las publicaciones una por una ordenadas por fecha de creación de forma descendente:

Obtenga la próxima publicación que le puede gustar:

db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)

Obtén una publicación anterior, te puede gustar esta:

db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)

Pocas cosas:

  1. Si no usa mongodb ObjectId el código anterior no funcionará para usted, pero aún puede usar postDate en lugar de id y publicación actual postDate en lugar de curId .
  2. Tenga cuidado con el orden al obtener las publicaciones siguientes/anteriores, para recuperar la siguiente publicación necesita ordenar asc, para recuperar la publicación anterior necesita ordenar desc.
  3. No estoy familiarizado con mongoose, por lo que los scripts anteriores son scripts de shell mongodb.