Bagaimana untuk Melaksanakan Penomboran Optimum dalam MongoDB?

Patricia Arquette
Lepaskan: 2024-10-24 06:54:02
asal
761 orang telah melayarinya

How to Implement Optimal Pagination in MongoDB?

(Melaksanakan penomboran dalam MongoDB)

Penomboran berasaskan langkau tidak disyorkan untuk set data yang besar kerana penggunaan memorinya. Pendekatan alternatif untuk penomboran menggunakan susunan semula jadi mengikut medan _id. Walau bagaimanapun, mendapatkan semula _id dokumen terakhir adalah satu cabaran untuk pemula.

(Paging Hadapan)**

Paging ke hadapan melibatkan lelaran melalui halaman dalam susunan berurutan, menyimpan _id daripada item terakhir pada setiap halaman.

Untuk susunan semula jadi seperti _id, prosesnya mudah:

  1. Cari halaman pertama: db.users.find().limit( pageSize).
  2. Dapatkan _id dokumen terakhir: last_id = ....
  3. Cari halaman seterusnya: users = db.users.find({'_id' > last_id} ). had(10);.

(Aturan Bukan Semulajadi)**

Untuk susunan bukan semulajadi, seperti pangkat, prosesnya menjadi lebih kompleks :

  1. Pada halaman pertama, simpan _id dokumen yang diambil dan pangkat lastSeen:

    • var seenIds = [];, var lastSeen = null;
    • Simpan _id dan kemas kini lastSeen sambil melelakan melalui kursor.
  2. Pada halaman berikutnya, kecualikan _id yang dilihat dan dapatkan semula dokumen dengan pangkat kurang daripada atau sama dengan lastSeen :

    • db.junk.find( {_id: { $nin: seenIds }, pangkat: $lte: lastSeen } ).sort({ "rank": -1 }).had(2 );

(Pertimbangan)**

  • Kekalkan senarai _id yang dilihat untuk mengecualikan hasil pada halaman berikutnya.
  • Simpan nilai lastSeen dan buang _id yang dilihat apabila kedudukan berubah (untuk pesanan bukan semula jadi).

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran Optimum dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!