Så lad os antage, at du har et skema som dette:
{
_id,
text
}
Jeg formoder, at _id er mongo ObjectId, så vi det indeholder postdato, og jeg kan sortere på det
Lad os overveje, at jeg har åbnet nuværende indlæg med id lig med ObjectId( "43cc63093475061e3d95369d")
(i stedet for dette vil jeg bruge curId
) og jeg har brug for at kende næste og forrige. Lad os også overveje, at vi skal få alle indlæg én efter én sorteret efter oprettelsesdatoen faldende:
Få næste indlæg, du kan lide dette:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Få tidligere indlæg, du kan lide dette:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Et par ting:
- Hvis du ikke bruger mongodb
ObjectId
ovenstående kode fungerer ikke for dig, men du kan stadig brugepostDate
i stedet for id og aktuel postDate i stedet forcurId
. - Vær opmærksom på rækkefølgen, når du får næste/forrige indlæg, for at hente næste indlæg skal du sortere asc, for at hente forrige indlæg skal du sortere beskrivelse.
- Jeg er ikke bekendt med mongoose, så ovenstående scripts er mongodb shell scripts.