Menu
CoddyTech

Giữ lại các kết quả đầu tiên

Thuộc phần Cơ sở dữ liệu với MongoDB trong hành trình Node.js của Coddy. Bài học 12 trên 29.

Một trang hiển thị hai cuốn sách mới nhất chỉ cần hai kết quả đầu tiên. Con trỏ có phương thức giới hạn cho việc này. Giới hạn là số tài liệu, không phải giá trị của một trường.

await books.find().sort({year: 1}).limit(1).toArray();
// [Emma], cuốn sách xuất bản sớm nhất

Với con trỏ find, MongoDB sắp xếp trước khi giới hạn, bất kể bạn nối các lời gọi theo thứ tự nào. Hãy viết sort trước để code thể hiện đúng thứ tự đó. Kết quả trả về vẫn là một mảng khi giới hạn là 1. Nếu số tài liệu khớp ít hơn giới hạn, cơ sở dữ liệu trả về các tài liệu hiện có. Không có phần tử giữ chỗ trống nào được thêm vào.

Giá trị truy vấn là văn bản: Number(input.page) || 1 dùng giá trị số của nó, hoặc 1 khi không có. Bài luyện tập này chấp nhận các số nguyên dương.

challenge icon

Thử thách

Dễ

Giữ nguyên cách sắp xếp từ mới nhất đến cũ nhất đã cho. Giới hạn kết quả bằng input.n trong chuỗi truy vấn; dùng 2 nếu không có giá trị này. Trả về nguyên trạng các tài liệu.

Thử chạy: GET /result?n=2 trả về Kindred rồi đến Dune. Với ?n=1, chỉ còn Kindred. Nếu không có n, mặc định trả về hai kết quả. Đầu vào là các số nguyên dương.

Tự làm thử

export async function exercise(books, input) {
    return await books.find().sort({ year: -1 }).toArray();
}

Tất cả bài học trong Cơ sở dữ liệu với MongoDB

Tự luyện tập: Playground Express