Załóżmy więc, że masz taki schemat:
{
_id,
text
}
Przypuszczam, że _id to mongo ObjectId, więc zawiera datę publikacji i mogę ją posortować
Rozważmy, że otworzyłem bieżący post z identyfikatorem równym ObjectId( "43cc63093475061e3d95369d")
(zamiast tego użyję curId
) i muszę znać następny i poprzedni. Weźmy również pod uwagę, że musimy pobrać wszystkie posty jeden po drugim, uporządkowane według daty utworzenia malejąco:
Pobierz następny post, który może Ci się spodobać:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Pobierz poprzedni post, który może Ci się spodobać:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Kilka rzeczy:
- Jeśli nie używasz mongodb
ObjectId
powyższy kod nie zadziała dla Ciebie, ale nadal możesz użyćpostDate
zamiast identyfikatora i aktualnego postDate zamiastcurId
. - Zwróć uwagę na kolejność podczas pobierania następnych/poprzednich postów, aby pobrać następny post, musisz sortować asc, aby pobrać poprzedni post, potrzebujesz sortuj opis.
- Nie jestem zaznajomiony z mangustą, więc powyższe skrypty to skrypty powłoki mongodb.