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:
- Se non usi mongodb
ObjectId
il codice sopra non funzionerà per te, ma puoi comunque utilizzarepostDate
invece di id e post corrente postDate invece dicurId
. - 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.
- Non ho familiarità con mongoose, quindi sopra gli script ci sono gli script della shell mongodb.