Paging Cekap dalam MongoDB dengan mgo menggunakan cursor.min()
Keupayaan halaman MongoDB, biasanya dilaksanakan menggunakan Query.Skip() dan Query .Limit(), boleh menjadi perlahan apabila nombor halaman bertambah. Untuk menangani perkara ini, MongoDB memperkenalkan cursor.min(), yang membenarkan penetapan entri indeks pertama untuk mula menyenaraikan hasil daripada.
Had mgo.v2
Malangnya, pemandu mgo.v2 tidak mempunyai sokongan untuk cursor.min(). Walau bagaimanapun, kefungsian ini boleh dicapai menggunakan kaedah Pangkalan Data.Run() untuk melaksanakan perintah MongoDB, termasuk arahan find.
Melaksanakan Paging Cekap Secara Manual
Menggunakan github.com/icza/minquery
Pakej minquery menyediakan pembungkus yang memudahkan proses melaksanakan arahan find dengan cursor.min () sokongan.
q := minquery.New(session.DB(""), "users", bson.M{"country" : "USA"}). Sort("name", "_id").Limit(10) // If this is not the first page, set cursor: if cursor := getLastCursor(); cursor != "" { q = q.Cursor(cursor) } var users []*User newCursor, err := q.All(&users, "country", "name", "_id")
Nota: Apabila menggunakan minquery.All(), nyatakan nama medan kursor semasa menyahkod keputusan, walaupun tidak digunakan secara langsung. Ini penting untuk menjana data kursor untuk pertanyaan seterusnya.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Paging Cekap dalam MongoDB dengan mgo.v2 tanpa Sokongan Native cursor.min()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!