Ikuti petunjuk dalam contoh di bawah ini untuk menyisipkan data ke dalam koleksi dan mengembalikan hanya hasil tertentu dari kueri menggunakan pengurutan, lompatan, dan batasan. Perhatikan kumpulan dokumen berikut yang mendeskripsikan buku
[ { "_id": 1, "name": "The Brothers Karamazov", "author": "Dostoyevsky", "length": 824 }, { "_id": 2, "name": "Les Misérables", "author": "Hugo", "length": 1462 }, { "_id": 3, "name": "Atlas Shrugged", "author": "Rand", "length": 1088 }, { "_id": 4, "name": "Infinite Jest", "author": "Wallace", "length": 1104 }, { "_id": 5, "name": "Cryptonomicon", "author": "Stephenson", "length": 918 }, { "_id": 6, "name": "A Dance With Dragons", "author": "Tolkein", "length": 1104 },]
Catatan
Operasi kueri Anda mungkin mengembalikan referensi ke kursor yang berisi dokumen yang cocok. Untuk mempelajari cara memeriksa data yang disimpan di kursor, lihat halaman Dasar-Dasar Kursor
Membatasi
Contoh berikut menanyakan koleksi untuk mengembalikan tiga buku terpanjang teratas. Ini mencocokkan semua dokumen dengan kueri, menerapkan // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);0 pada bidang // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);1 untuk mengembalikan buku dengan panjang lebih panjang sebelum buku, dan menerapkan limit untuk mengembalikan hanya // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);3 hasil
// define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);_
Contoh kode di atas menampilkan tiga dokumen berikut, diurutkan berdasarkan panjang
{ "_id": 2, "title": "Les Misérables", "author": "Hugo", "length": 1462 }{ "_id": 6, "title": "A Dance With Dragons", "author": "Martin", "length": 1104 }{ "_id": 4, "title": "Infinite Jest", "author": "Wallace", "length": 1104 }
Catatan
Urutan di mana Anda menelepon limit_ dan // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);0 tidak masalah karena pengemudi mengatur ulang panggilan untuk menerapkan pengurutan terlebih dahulu dan batas setelahnya. Dua panggilan berikut ini setara
collection.find(query).sort({ length: -1 }).limit(3);collection.find(query).limit(3).sort({ length: -1 });
Anda juga dapat menerapkan // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);0 dan limit dengan menentukannya dalam objek // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);8 dalam panggilan Anda ke metode // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);9. Dua panggilan berikut ini setara
collection.find(query).sort({ length: -1 }).limit(3);collection.find(query, { sort: { length: -1 }, limit: 3 });
Untuk informasi selengkapnya tentang pengaturan // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);_8 untuk metode // define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const cursor = collection.find(query).sort(sort).limit(limit);await cursor.forEach(console.dir);9, lihat
Melewati
Untuk melihat tiga buku berikutnya dalam hasil, tambahkan metode { "_id": 2, "title": "Les Misérables", "author": "Hugo", "length": 1462 }{ "_id": 6, "title": "A Dance With Dragons", "author": "Martin", "length": 1104 }{ "_id": 4, "title": "Infinite Jest", "author": "Wallace", "length": 1104 }2, berikan jumlah dokumen yang akan dilewati seperti yang ditunjukkan di bawah ini
// define an empty query documentconst query = {};// sort in descending (-1) order by lengthconst sort = { length: -1 };const limit = 3;const skip = 3;const cursor = collection.find(query).sort(sort).limit(limit).skip(skip);await cursor.forEach(console.dir);
Operasi ini mengembalikan dokumen yang mendeskripsikan buku keempat hingga keenam dalam urutan dari panjang terpanjang hingga terpendek
{ "_id": 3, "title": "Atlas Shrugged", "author": "Rand", "length": 1088 }{ "_id": 5, "title": "Cryptonomicon", "author": "Stephenson", "length": 918 }{ "_id": 1, "title": "The Brothers Karamazov", "author": "Dostoyevsky", "length": 824 }
Anda dapat menggabungkan lewati dan batasi dengan cara ini untuk mengimplementasikan paging untuk koleksi Anda, hanya mengembalikan "irisan" kecil dari koleksi sekaligus