MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come recuperare l'elemento successivo e precedente di quello attuale con Mongoose

Quindi supponiamo di avere uno schema come questo:

{
 _id,
 text    
}

Suppongo che _id sia mongo ObjectId, quindi contiene la data del post e posso ordinarlo

Consideriamo che ho aperto il post corrente con id uguale a ObjectId( "43cc63093475061e3d95369d") (invece di questo userò curId ) e ho bisogno di sapere il prossimo e il precedente. Consideriamo anche che abbiamo bisogno di ottenere tutti i post uno per uno ordinati per data di creazione decrescente:

Ricevi il prossimo post che ti piace questo:

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

Ottieni il post precedente ti piace questo:

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

Poche cose:

  1. Se non usi mongodb ObjectId il codice sopra non funzionerà per te, ma puoi comunque utilizzare postDate invece di id e post corrente postDate invece di curId .
  2. Fai attenzione all'ordine quando ricevi i post successivi/precedenti, per recuperare il post successivo devi ordinare asc, per recuperare il post precedente devi ordinare desc.
  3. Non ho familiarità con mongoose, quindi sopra gli script ci sono gli script della shell mongodb.