Tài liệu về nhà → node.js → Node.js
Bạn có thể sử dụng các hoạt động đọc để truy xuất dữ liệu từ cơ sở dữ liệu MongoDB của bạn. Có nhiều loại hoạt động đọc truy cập dữ liệu theo các cách khác nhau. Nếu bạn muốn yêu cầu kết quả dựa trên một tập hợp các tiêu chí từ bộ dữ liệu hiện có, bạn có thể sử dụng một thao tác tìm kiếm như các phương thức find[]
hoặc findOne[]
.
Bạn cũng có thể chỉ định thêm thông tin bạn đang yêu cầu bằng cách bao gồm các tham số bổ sung hoặc bằng cách chuỗi các phương thức khác như:
Sắp xếp kết quả
Bỏ qua kết quả trả về
Giới hạn số lượng kết quả trả lại
Chỉ định các trường nào để trả về
Bạn cũng có thể sử dụng một hoạt động tổng hợp để truy xuất dữ liệu. Loại hoạt động này cho phép bạn áp dụng một đường ống biến đổi theo thứ tự cho dữ liệu phù hợp.
Nếu bạn muốn theo dõi cơ sở dữ liệu cho dữ liệu đến phù hợp với một tập hợp các tiêu chí, bạn có thể sử dụng thao tác đồng hồ để được thông báo trong thời gian thực khi chèn dữ liệu khớp.
Ghi chú
Hoạt động truy vấn của bạn có thể trả về một tham chiếu đến một con trỏ chứa các tài liệu phù hợp. Để tìm hiểu cách kiểm tra dữ liệu được lưu trữ trong con trỏ, hãy xem trang Nguyên tắc cơ bản con trỏ.
Phương thức find[]
được gọi trên đối tượng
await cursor.forEach[console.dir];
0 tham chiếu bộ sưu tập bạn muốn truy vấn. Phương thức chấp nhận một tài liệu truy vấn mô tả các tài liệu bạn muốn truy xuất. Để biết thêm thông tin về cách chỉ định tài liệu truy vấn của bạn, hãy xem hướng dẫn của chúng tôi về cách chỉ định truy vấn.Nếu bạn giải quyết
await cursor.forEach[console.dir];
1 được trả về bởi find[]
, bạn sẽ nhận được tham chiếu đến await cursor.forEach[console.dir];
3 mà bạn có thể điều hướng các tài liệu phù hợp. Nếu bạn giải quyết await cursor.forEach[console.dir];
1 được trả về bởi findOne[]
, bạn sẽ nhận được tài liệu phù hợp hoặc await cursor.forEach[console.dir];
6 nếu không có trận đấu.Thí dụ
Một nhà hàng pizza muốn tìm tất cả các pizza được đặt hàng bởi Lemony Snicket ngày hôm qua. Họ chạy truy vấn find[]
sau đây trên bộ sưu tập
await cursor.forEach[console.dir];
8: const findResult = await orders.find[{ name: "Lemony Snicket", date: { $gte: new Date[new Date[].setHours[00, 00, 00]], $lt: new Date[new Date[].setHours[23, 59, 59]], }, }];
Khi hoạt động trả về, biến
await cursor.forEach[console.dir];
9 tham chiếu đến await cursor.forEach[console.dir];
3. Bạn có thể in các tài liệu được truy xuất bằng phương pháp [ { name: "Lemony Snicket", type: "horseradish pizza", qty: 1, status: "delivered", date: ... }, { name: "Lemony Snicket", type: "coal-fired oven pizza", qty: 3, status: "canceled", date: ...}, ... ]
1 như được hiển thị bên dưới:await cursor.forEach[console.dir];
Đầu ra có thể giống như sau:
[ { name: "Lemony Snicket", type: "horseradish pizza", qty: 1, status: "delivered", date: ... }, { name: "Lemony Snicket", type: "coal-fired oven pizza", qty: 3, status: "canceled", date: ...}, ... ]
Xem Find [] và FindOne [] để biết các ví dụ có thể chạy hoàn toàn.
Nếu bạn muốn chạy một đường ống xử lý tùy chỉnh để truy xuất dữ liệu từ cơ sở dữ liệu của mình, bạn có thể sử dụng phương thức
[ { name: "Lemony Snicket", type: "horseradish pizza", qty: 1, status: "delivered", date: ... }, { name: "Lemony Snicket", type: "coal-fired oven pizza", qty: 3, status: "canceled", date: ...}, ... ]
2. Phương pháp này chấp nhận các biểu thức tổng hợp để chạy theo trình tự. Các biểu thức này cho phép bạn lọc, nhóm và sắp xếp dữ liệu kết quả từ một bộ sưu tập.Thí dụ
Một nhà hàng pizza muốn tìm tất cả các pizza được đặt hàng bởi Lemony Snicket ngày hôm qua. Họ chạy truy vấn find[]
sau đây trên bộ sưu tập
await cursor.forEach[console.dir];
8: const aggregateResult = await orders.aggregate[[ { $match: { date: { $gte: new Date[new Date[].getTime[] - 1000 * 3600 * 24 * 7], $lt: new Date[], }, }, }, { $group: { _id: "$status", count: { $sum: 1, }, }, }, ]];
Khi hoạt động trả về, biến
await cursor.forEach[console.dir];
9 tham chiếu đến await cursor.forEach[console.dir];
3. Bạn có thể in các tài liệu được truy xuất bằng phương pháp [ { name: "Lemony Snicket", type: "horseradish pizza", qty: 1, status: "delivered", date: ... }, { name: "Lemony Snicket", type: "coal-fired oven pizza", qty: 3, status: "canceled", date: ...}, ... ]
1 như được hiển thị bên dưới:await cursor.forEach[console.dir];
Đầu ra có thể giống như sau:
[ { _id: 'delivering', count: 5 }, { _id: 'delivered', count: 37 }, { _id: 'created', count: 9 } ]
Xem Find [] và FindOne [] để biết các ví dụ có thể chạy hoàn toàn.aggregation for more information on how to construct an aggregation pipeline.
Nếu bạn muốn chạy một đường ống xử lý tùy chỉnh để truy xuất dữ liệu từ cơ sở dữ liệu của mình, bạn có thể sử dụng phương thức
[ { name: "Lemony Snicket", type: "horseradish pizza", qty: 1, status: "delivered", date: ... }, { name: "Lemony Snicket", type: "coal-fired oven pizza", qty: 3, status: "canceled", date: ...}, ... ]
2. Phương pháp này chấp nhận các biểu thức tổng hợp để chạy theo trình tự. Các biểu thức này cho phép bạn lọc, nhóm và sắp xếp dữ liệu kết quả từ một bộ sưu tập.Thí dụ
Một nhà hàng pizza muốn tìm tất cả các pizza được đặt hàng bởi Lemony Snicket ngày hôm qua. Họ chạy truy vấn find[]
sau đây trên bộ sưu tập
await cursor.forEach[console.dir];
8: const changeStream = orders.watch[[ { $match: { operationType: "insert" } }, { $project: { "fullDocument.name": 1, "fullDocument.address": 1, }, }, ]]; changeStream.on["change", change => { const { name, address } = change.fullDocument; console.log[`New order for ${name} at ${address}.`]; }];
Khi hoạt động trả về, biến
await cursor.forEach[console.dir];
9 tham chiếu đến await cursor.forEach[console.dir];
3. Bạn có thể in các tài liệu được truy xuất bằng phương pháp [ { name: "Lemony Snicket", type: "horseradish pizza", qty: 1, status: "delivered", date: ... }, { name: "Lemony Snicket", type: "coal-fired oven pizza", qty: 3, status: "canceled", date: ...}, ... ]
1 như được hiển thị bên dưới: