Så låt anta att du har ett schema så här:
{
_id,
text
}
Jag antar att _id är mongo ObjectId, så vi innehåller postdatum och jag kan sortera på det
Låt oss tänka på att jag har öppnat nuvarande inlägg med id lika med ObjectId( "43cc63093475061e3d95369d")
(Istället för detta kommer jag att använda curId
) och jag behöver veta nästa och föregående. Låt oss också tänka på att vi måste få alla inlägg en efter en sorterade efter skapat datum fallande:
Få nästa inlägg du kan gilla så här:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Få tidigare inlägg du kan gilla så här:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Några saker:
- Om du inte använder mongodb
ObjectId
ovanstående kod fungerar inte för dig, men du kan fortfarande användapostDate
istället för id och aktuell postDate istället förcurId
. - Tänk på ordningen när du får nästa/föregående inlägg, för att hämta nästa inlägg behöver du sortera asc, för att hämta föregående inlägg behöver du sortera beskrivning.
- Jag är inte bekant med mongoose, så ovanstående skript är mongodb shell scripts.