Dus stel dat je een schema hebt zoals dit:
{
_id,
text
}
Ik veronderstel dat _id mongo ObjectId is, dus we bevatten de postdatum en ik kan erop sorteren
Laten we aannemen dat ik het huidige bericht heb geopend met een id gelijk aan ObjectId( "43cc63093475061e3d95369d")
(in plaats hiervan gebruik ik curId
) en ik moet de volgende en de vorige weten. Laten we er ook rekening mee houden dat we alle berichten één voor één moeten krijgen, gerangschikt op aanmaakdatum, aflopend:
Ontvang het volgende bericht, je kunt dit leuk vinden:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Krijg vorige post die je kunt liken:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Paar dingen:
- Als u mongodb
ObjectId
niet gebruikt bovenstaande code werkt niet voor u, maar u kunt nog steedspostDate
gebruiken in plaats van id en huidige post postDate in plaats vancurId
. - Let op de volgorde bij het ophalen van volgende/vorige berichten, om het volgende bericht op te halen moet u oplopend sorteren, om vorig bericht op te halen moet u sorteren op desc.
- Ik ben niet bekend met mangoest, dus bovenstaande scripts zijn mongodb shell-scripts.