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ấtVớ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.
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