MongoDB tana jera sakamakon buhattu tare da sort kuma tana ba da shafi tare da limit da skip — aka haifar su akan find cursor. Tare suna jajere da komawa shafuka na bayani, wajabe ne don nuni da sakamakon.
MongoDB tana jera sakamakon buhattu tare da sort kuma tana ba da shafi tare da limit da skip — aka haifar su akan find cursor. Tare suna jajere da komawa shafuka na bayani, wajabe ne don nuni da sakamakon.
db.users.find().sort({ age: 1 }); // ascending by age (1 = asc)
db.users.find().sort({ age: -1 }); // descending (-1 = desc)
db.users.find().sort({ country: 1, name: 1 }); // by country, then name (tie-break)
db.users.find().sort({ createdAt: -1 }); // newest first (common)
sort yana ɗaukar takardar filin:direkshon (1 haɗi, -1 gajere). Filayen da yawa suna ba da karkatarwa ta kukata.
db.users.find().sort({ name: 1 }).limit(10); // first 10 (page 1)
db.users.find().sort({ name: 1 }).skip(10).limit(10); // skip 10, take 10 (page 2)
// page N: .skip((N-1) * pageSize).limit(pageSize)
limit(n) yana komawa aƙalla n abubuwan; skip(m) yana tsallakewa na farko m. Tare suna aiwatar da offset pagination (shafin N ta hanyar skip + limit).
// ❌ pagination without sort → inconsistent order (pages may overlap/skip)
db.users.find().skip(10).limit(10);
// ✅ sort by a stable field for consistent pages
db.users.find().sort({ _id: 1 }).skip(10).limit(10);
Ba tare da sort, tsarin abubuwan ba shi da garantiya, saboda haka shafukan masu rahotarwa na iya zama ba daidai ba. A kullum jera ta waje mai qirji (kamar _id) yayin paginating.
// ⚠️ skip(1000000) must scan/skip a million docs → slow on deep pages
// ✅ range-based (cursor) pagination — far more efficient for large datasets
db.users.find({ _id: { $gt: lastSeenId } }).sort({ _id: 1 }).limit(10);
// → use the last document's _id to fetch the next page (uses the index, no skipping)
Sorting on an INDEXED field is efficient. Sorting a large result set WITHOUT an index
requires an in-memory sort (limited size — can fail/be slow for big sorts).
→ Index fields you sort by.
Pagidemawa da pagination su ne muhimmi don nuni da bayani mai amfani a MongoDB — jera sakamakon da komawa shafuka masu kyau sun kasance kusan cikakke bukattu (jiya waje, tashe, ko table a aikace-aikace), saboda haka fahimtar su shine mahimman ilimi na yau-yau.
Sanin sort (jera ta filayen tare da 1/-1, tare da karkatarwa ta kukata) da limit/skip (don offset pagination — komawa shafuka na bayani) yana rufe bukattuwan gida.
Jiya maki gida suna da matukar muhimmanci: a kullum jera yayin paginating (ba tare da shi, tsarin abubuwan ba shi da garantiya, yana haifar wa shafuka ba daidai ba waɗanda suke tattaka ko tsallakewa abubuwan — aini duba, irin lamarin da aka sani a SQL), da fahimtar cewa skip yana jita akan shafi maye zuwa (dole ne ya duba kuma ya tsallake duk abubuwan da suka gaje) — saboda haka range-based (cursor) pagination (amfani da _id na karshe da aka gani don samun shafin gida, yana amfani da index ba tare da tsallakewa) ya fi karfi don bayani masu girma, fasaha mai mahimmanci.
Sanin cewa pagidemawa akan filayen indexed yana karfi yayin da girma mara index sorts na iya jita ko kasa (iyakance naje) shima mahimmi — index filayen da kuke jera.
Saboda pagidemawa da pagination ana bukata ga kusan kowane nuni na bayani, kuma saboda bukatun tsufa (jera don tsufa pagination) da daɗewa-ƙira (skip da range-based pagination, indexed sorts) direwa sune daidaita da saurin, fahimtar MongoDB pagidemawa da pagination — sort, offset pagination tare da skip/limit, tsufa-jera bukattu, dagane range-based, da indexing sort filayen — shine mahimmi, lokaci-lokaci ilimi da ake amfani dashi ne don gina aikace-aikace waɗanda suke nufi MongoDB bayani cikin karfi da saurin.