Vì vậy, giả sử bạn có giản đồ như sau:
{
_id,
text
}
Tôi cho rằng _id là ObjectId mongo, vì vậy chúng tôi chứa ngày đăng bài và tôi có thể sắp xếp trên đó
Hãy xem xét rằng tôi đã mở bài đăng hiện tại với id bằng ObjectId( "43cc63093475061e3d95369d")
(thay vì điều này, tôi sẽ sử dụng curId
) và tôi cần biết cái tiếp theo và cái trước. Ngoài ra, hãy cân nhắc rằng chúng ta cần nhận tất cả các bài đăng từng bài một được sắp xếp theo ngày tạo giảm dần:
Nhận bài tiếp theo mà bạn có thể thích:
db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
Nhận bài viết trước, bạn có thể thích bài này:
db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
Vài điều:
- Nếu bạn không sử dụng mongodb
ObjectId
mã trên sẽ không hoạt động đối với bạn, nhưng bạn vẫn có thể sử dụngpostDate
thay vì id và postDate hiện tại thay vìcurId
. - Hãy quan tâm đến thứ tự khi nhận các bài đăng tiếp theo / trước, để truy xuất bài đăng tiếp theo, bạn cần sắp xếp asc, để truy xuất bài đăng trước, bạn cần mô tả sắp xếp.
- Tôi không quen với mongoose, vì vậy các tập lệnh trên là các tập lệnh shell mongodb.