MongoDB Tài liệu truy vấn: db.collection.find() với ví dụ
⚡ Tóm tắt thông minh
MongoDB Thao tác truy vấn tài liệu lấy các bản ghi từ một bộ sưu tập bằng cách sử dụng hàm db.collection.find(). Phương thức này trả về tất cả các tài liệu theo mặc định, chấp nhận các tiêu chí lọc như khớp trường và toán tử $gt, và định dạng kết quả bằng lệnh forEach(printjson).

Phương pháp tìm nạp hoặc lấy dữ liệu từ một MongoDB cơ sở dữ liệu được thực hiện bằng cách sử dụng MongoDB truy vấn. Trong khi thực hiện thao tác truy vấn, người ta cũng có thể sử dụng các tiêu chí hoặc điều kiện có thể được sử dụng để truy xuất dữ liệu cụ thể từ cơ sở dữ liệu.
MongoDB cung cấp một chức năng gọi là db.collection.find () được sử dụng để lấy tài liệu từ một MongoDB cơ sở dữ liệu.
Trong quá trình này MongoDB hướng dẫn truy vấn, bạn sẽ thấy chức năng này được sử dụng theo nhiều cách khác nhau như thế nào để đạt được mục đích truy xuất tài liệu.
db.collection.find() là gì? MongoDB?
Phương thức `db.collection.find()` là cách chính để đọc tài liệu từ một cơ sở dữ liệu. MongoDB Tập hợp. Khi bạn gọi nó mà không có đối số nào, nó sẽ trả về mọi tài liệu trong tập hợp. Khi bạn truyền vào một đối tượng truy vấn, nó chỉ trả về các tài liệu khớp với tiêu chí đã cho, do đó bạn có thể truy xuất chính xác dữ liệu bạn cần.
Phương thức này trả về một con trỏ, là một con trỏ đến tập kết quả chứ không phải chính các tài liệu. Thông thường, bạn sẽ lặp qua con trỏ để hiển thị kết quả, thường sử dụng forEach(printjson) để hiển thị từng tài liệu dưới dạng JSON dễ đọc. Nếu bạn chỉ cần một bản ghi duy nhất, MongoDB Ngoài ra, nó còn cung cấp hàm findOne(), trả về tài liệu khớp đầu tiên thay vì con trỏ. Kết hợp cả hai hàm find() và findOne(), chúng bao gồm hầu hết các thao tác đọc trong một cơ sở dữ liệu. MongoDB cơ sở dữ liệu, từ việc truy xuất toàn bộ bộ sưu tập đến việc lọc theo giá trị trường cụ thể.
MongoDB Truy vấn cơ bản Operations
Cơ bản MongoDB toán tử truy vấn bao gồm các thao tác đơn giản như lấy tất cả tài liệu trong một MongoDB bộ sưu tập. Hãy xem ví dụ db.collection.find về cách chúng ta có thể thực hiện việc này.
Tất cả mã của chúng tôi sẽ được chạy trong MongoDB JavaScript vỏ lệnh. Hãy xem xét rằng chúng tôi có một bộ sưu tập có tên 'Nhân viên' trong MongoDB cơ sở dữ liệu và chúng tôi thực hiện lệnh dưới đây.

Code Giải thích:
- Nhân viên là tên bộ sưu tập trong MongoDB cơ sở dữ liệu
- MongoDB truy vấn tìm là một hàm dựng sẵn được sử dụng để truy xuất các tài liệu trong bộ sưu tập.
Nếu lệnh được thực hiện thành công, Đầu ra sau sẽ được hiển thị cho MongoDB tìm ví dụ
Đầu ra:
Đầu ra hiển thị tất cả các tài liệu có trong bộ sưu tập.
Chúng tôi cũng có thể thêm tiêu chí vào truy vấn của mình để có thể tìm nạp tài liệu dựa trên các điều kiện nhất định.
MongoDB Ví dụ truy vấn – 1
Hãy xem xét một số MongoDB các ví dụ truy vấn về cách chúng tôi có thể thực hiện việc này.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Giải thích:
- Ở đây chúng tôi muốn tìm một Nhân viên có tên là “Smith” trong bộ sưu tập, do đó chúng tôi nhập tiêu chí lọc là Tên nhân viên: “Smith”
Nếu lệnh được thực hiện thành công, Đầu ra sau sẽ được hiển thị
Đầu ra:
Kết quả đầu ra cho thấy rằng chỉ tài liệu có chứa “Smith” làm Tên nhân viên mới được trả về.
MongoDB Ví dụ truy vấn – 2
Bây giờ trong này MongoDB hướng dẫn truy vấn, chúng ta hãy xem một ví dụ mã khác sử dụng tiêu chí tìm kiếm lớn hơn. Khi tiêu chí này được đưa vào, nó thực sự tìm kiếm những tài liệu có giá trị của trường lớn hơn giá trị được chỉ định.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Giải thích:
- Ở đây, chúng tôi muốn tìm tất cả Nhân viên có id lớn hơn 2. $gt được gọi là toán tử chọn truy vấn và ý nghĩa duy nhất là sử dụng biểu thức lớn hơn.
Nếu MongoDB lệnh select fields được thực hiện thành công, Output sau sẽ được hiển thị
Đầu ra:
Tất cả các tài liệu trong đó ID nhân viên lớn hơn 2 sẽ được trả về.
MongoDB Câu Hỏi Operaxoắn
MongoDB Bộ lọc tài liệu sử dụng các toán tử lựa chọn truy vấn bên trong tiêu chí tìm kiếm(). Các toán tử này cho phép bạn khớp với phạm vi, danh sách và phủ định thay vì chỉ các giá trị chính xác. Bảng dưới đây liệt kê các toán tử phổ biến nhất:
| Operator | Ý nghĩa | Ví dụ |
|---|---|---|
| $gt | Lớn hơn | {Employeeid: {$gt: 2}} |
| $lt | Less hơn | {Employeeid: {$lt: 5}} |
| $ gte | Lớn hơn hoặc bằng | {tuổi: {$gte: 18}} |
| $ lte | Less hơn hoặc bằng | {tuổi: {$lte: 60}} |
| $ ne | Không bằng | {status: {$ne: “active”}} |
| $ trong | Khớp với bất kỳ giá trị nào trong danh sách. | {dept: {$in: [“HR”,”IT”]}} |
Bạn cũng có thể kết hợp các điều kiện với $and và $or để xây dựng các truy vấn chính xác hơn. Việc chọn đúng toán tử giúp các truy vấn hiệu quả và chỉ trả về các tài liệu mà ứng dụng của bạn cần.
Cách sử dụng phép chiếu với hàm find()
Theo mặc định, find() trả về toàn bộ tài liệu, bao gồm mọi trường. Thông thường bạn chỉ cần một vài trường, chẳng hạn như tên hoặc ID. MongoDB Điều này cho phép bạn kiểm soát việc này bằng một phép chiếu, đó là một đối số thứ hai được truyền cho hàm find() để liệt kê các trường cần bao gồm hoặc loại trừ.
Để chỉ bao gồm các trường cụ thể, hãy đặt chúng thành 1 trong đối tượng chiếu. Truy vấn sau chỉ trả về trường EmployeeName cho mỗi tài liệu:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB Hàm này luôn trả về trường _id trừ khi bạn loại trừ nó một cách rõ ràng. Để ẩn nó, hãy đặt _id thành 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
Bạn cũng có thể loại trừ các trường thay vì bao gồm chúng bằng cách đặt giá trị của chúng bằng 0. Ví dụ, truy vấn bên dưới trả về mọi trường ngoại trừ Employeeid:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Hãy nhớ rằng bạn không thể kết hợp bao gồm và loại trừ trong cùng một phép chiếu, ngoại trừ trường _id. Sử dụng phép chiếu giúp giảm lượng dữ liệu được truyền từ máy chủ, giúp truy vấn nhanh hơn và phản hồi dễ đọc hơn, đặc biệt là với các tài liệu lớn.



