MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara mengambil item berikutnya dan sebelumnya dari item saat ini dengan Mongoose

Jadi misalkan Anda memiliki skema seperti ini:

{
 _id,
 text    
}

Saya kira _id adalah mongo ObjectId, jadi kami berisi tanggal posting dan saya dapat mengurutkannya

Mari kita pertimbangkan bahwa saya telah membuka posting saat ini dengan id sama dengan ObjectId( "43cc63093475061e3d95369d") (alih-alih ini saya akan menggunakan curId ) dan saya perlu tahu yang berikutnya dan sebelumnya. Juga mari kita pertimbangkan bahwa kita perlu mendapatkan semua posting satu per satu yang diurutkan berdasarkan tanggal pembuatan turun:

Dapatkan posting berikutnya Anda dapat menyukai ini:

db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)

Dapatkan posting sebelumnya Anda dapat menyukai ini:

db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)

Beberapa hal:

  1. Jika Anda tidak menggunakan mongodb ObjectId kode di atas tidak akan berfungsi untuk Anda, tetapi Anda masih dapat menggunakan postDate alih-alih id dan postDate posting saat ini alih-alih curId .
  2. Hati-hati dengan urutan saat mendapatkan posting berikutnya/sebelumnya, untuk mengambil posting berikutnya Anda perlu mengurutkan asc, untuk mengambil posting sebelumnya Anda perlu mengurutkan desc.
  3. Saya tidak familiar dengan luwak, jadi skrip di atas adalah skrip shell mongodb.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pembaruan MongoDB Banyak dengan Bersyarat

  2. Pembaruan bersamaan MongoDB ke dokumen yang sama tidak berperilaku atom

  3. Pencarian teks lengkap di MongoDB GridFS?

  4. Agregasi MongoDB dengan $sampel sangat lambat

  5. Adakah alasan terperinci dan spesifik untuk Mengapa MongoDB jauh lebih cepat daripada SQL DB?