MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cách tìm nạp mục tiếp theo và mục trước của mục hiện tại bằng Mongoose

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:

  1. 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ụng postDate thay vì id và postDate hiện tại thay vì curId .
  2. 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.
  3. 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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chỉ truy vấn tài liệu con và chỉ trả lại tài liệu con so khớp

  2. cách truyền ObjectId đúng cách trong mongoose

  3. mongodb fork trong windows

  4. GeoNear trong MongoDB có thể trả về một tập hợp con các trường trong tài liệu không?

  5. Tải mã nhúng JWplayer từ bộ sưu tập cơ sở dữ liệu vào một mẫu trang trong meteor.js