MongoDB menyortir asil query karo sort lan nglaksanakake pagination karo limit lan skip — disambung ing find cursor. Bareng-bareng bisa nangani pangurutan lan ngembalekake kaca-kaca saka data, sing penting kanggo nampilake asil.
MongoDB menyortir asil query karo sort lan nglaksanakake pagination karo limit lan skip — disambung ing find cursor. Bareng-bareng bisa nangani pangurutan lan ngembalekake kaca-kaca saka data, sing penting kanggo nampilake asil.
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 njupuk dokumen saka field:direction (1 ascending, -1 descending). Sawetara field nyedhiyakake pemecah kapigaran.
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) ngembalekake paling akeh n dokumen; skip(m) nyilak m pisanan. Bareng-bareng implement offset pagination (kaca N liwat 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);
Bebas sort, urutan dokumen ora dijamin, mula kaca-kaca paginated bisa ora konsisten. Tansah sort nganggo field sing stabil (kaya _id) nalika nglaksanakake pagination.
// ⚠️ 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.
Sorting lan pagination yaiku fundamental kanggo nampilake data kanthi mangkono ing MongoDB — pangurutan asil lan ngembalekake kaca-kaca sing bisa diatur yaiku kabutuhan sing umum-umum (setunggal dhaptar, feed, utawa tabèl ing aplikasi), mula ngerti babagan karo sing luwih jero yaiku ilmu saben dina sing penting.
"),Ngerti sort (pangurutan dening field karo 1/-1, karo tie-breaking) lan limit/skip (kanggo offset pagination — ngembalekake kaca-kaca data) nyakup kabutuhan umum kanggo mungkasi asil query.
Rong titik praktis sing utama: tansah sort nalika nglaksanakake pagination (bebas iku, urutan dokumen ora dijamin, nyebabake kaca-kaca sing ora konsisten sing bisa tumpang tindih utawa nyilak dokumen — bug nyata, masalah sing padha kaya ing SQL), lan ngerti manawa skip alon ing kaca jero (kudu nglingsir lan nyilak kabeh dokumen sadurunge) — mula range-based (cursor) pagination (nggunakake _id sing pisanan katon kanggo njupuk kaca sabanjure, ngungkuli index tanpa nyilak) luwih efisien kanggo dataset gedhe, teknik kinerja sing berharga.
Ngerti manawa sorting ing field sing diindeks yaiku efisien lan sorts gedhe sing ora diindeks bisa alon utawa gagal (in-memory sort limits) uga penting — indeks field sing disortir.
Amarga sorting lan pagination kudu kanggo praktis setunggal tampilan data, lan amarga kabutuhan consistency (sort kanggo pagination sing stabil) lan pertimbangan kinerja (skip vs range-based pagination, indexed sorts) langsung ngresakake correctness lan speed, ngerti MongoDB sorting lan pagination — sort, offset pagination karo skip/limit, stable-sort requirement, efficient range-based alternative, lan indexing sort fields — yaiku ilmu sing penting lan asring ditrapake kanggo mbangun aplikasi sing nampilake MongoDB data kanthi efektif lan performan.