Nehmen wir also an, Sie haben ein Schema wie dieses:
{
_id,
text
}
Ich nehme an, dass _id Mongo ObjectId ist, also enthält es das Post-Datum und ich kann danach sortieren
Nehmen wir an, ich habe den aktuellen Beitrag mit der ID gleich ObjectId( "43cc63093475061e3d95369d")
geöffnet (Stattdessen verwende ich curId
) und ich muss das nächste und das vorherige wissen. Berücksichtigen wir auch, dass wir alle Posts einzeln erhalten müssen, sortiert nach Erstellungsdatum absteigend:
Holen Sie sich den nächsten Beitrag, den Sie mögen können:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Holen Sie sich den vorherigen Beitrag, den Sie mögen können:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Ein paar Dinge:
- Wenn Sie mongodb
ObjectId
nicht verwenden obiger Code wird für Sie nicht funktionieren, aber Sie können trotzdempostDate
verwenden statt id und aktuellem Beitrag postDate stattcurId
. - Achten Sie auf die Reihenfolge beim Abrufen der nächsten/vorherigen Beiträge. Um den nächsten Beitrag abzurufen, benötigen Sie sort asc, um den vorherigen Beitrag abzurufen, benötigen Sie sort desc.
- Ich bin mit Mongoose nicht vertraut, also sind obige Skripte Mongodb-Shell-Skripte.