Phương thức find() của MongoDB chọn các tài liệu từ một bộ sưu tập hoặc chế độ xem và trả về một con trỏ tới các tài liệu đó. Có hai tham số trong công thức này - truy vấn và phép chiếu. Truy vấn là một tham số tùy chọn chỉ định tiêu chí để lựa chọn. Nói một cách đơn giản, truy vấn là thứ bạn muốn tìm kiếm trong một bộ sưu tập. Phép chiếu là một tham số tùy chọn chỉ định nội dung sẽ được trả về nếu tiêu chí truy vấn được đáp ứng. Nói một cách đơn giản, đó là một kiểu ra quyết định dựa trên một bộ tiêu chí. Để biết thêm thông tin, hãy xem cách học phát triển Web Full Stack. Show
Lược đồ linh hoạt MongoDBCơ sở dữ liệu NoSQL, viết tắt của "không chỉ SQL", là một cách lưu trữ và truy xuất dữ liệu khác với cấu trúc bảng truyền thống của cơ sở dữ liệu quan hệ (RDBMS). Khi lưu trữ một lượng lớn dữ liệu phi cấu trúc với các lược đồ thay đổi, cơ sở dữ liệu NoQuery thực sự là một lựa chọn tốt hơn RDBMS. Thuộc tính mở rộng theo chiều ngang của cơ sở dữ liệu NoSQL cho phép chúng lưu trữ và xử lý lượng lớn dữ liệu Chúng được dùng để lưu trữ, truy xuất và quản lý dữ liệu định hướng tài liệu, thường được lưu trữ ở định dạng JSON (Ký hiệu đối tượng JavaScript). Cơ sở dữ liệu tài liệu, không giống như RDBMS, có một lược đồ linh hoạt được xác định bởi nội dung của tài liệu. MongoDB là một trong những cơ sở dữ liệu tài liệu NoSQL mã nguồn mở được sử dụng rộng rãi nhất. MongoDB được gọi là cơ sở dữ liệu 'không lược đồ' vì nó không áp đặt cấu trúc cụ thể cho các tài liệu trong bộ sưu tập MongoDB tương thích với một số ngôn ngữ lập trình phổ biến. Nó cũng cung cấp mức độ linh hoạt hoạt động cao vì nó mở rộng tốt theo chiều ngang, cho phép dữ liệu được trải rộng hoặc 'phân mảnh' trên nhiều máy chủ hàng hóa với khả năng thêm nhiều máy chủ hơn khi cần. MongoDB có thể chạy trên nhiều nền tảng, bao gồm máy tính xách tay của nhà phát triển, đám mây riêng và đám mây công cộng MongoDB Truy vấn tài liệu bằng cách sử dụng find()Các truy vấn MongoDB được sử dụng để truy xuất hoặc tìm nạp dữ liệu từ cơ sở dữ liệu MongoDB. Khi chạy truy vấn, bạn có thể sử dụng tiêu chí hoặc điều kiện để truy xuất dữ liệu cụ thể từ cơ sở dữ liệu. chức năng db. bộ sưu tập được cung cấp bởi MongoDB. find() là hàm truy xuất tài liệu từ cơ sở dữ liệu MongoDB. Trong MongoDB, findmethods được sử dụng để truy xuất một tài liệu cụ thể từ bộ sưu tập MongoDB. Trong Mongo DB, có tổng cộng sáu phương thức để truy xuất các bản ghi cụ thể
cú pháp find(query, projection) Chúng tôi có thể tìm nạp một bản ghi cụ thể bằng phương thức Tìm có hai tham số. Nếu hai tham số này bị bỏ qua, phương thức find sẽ trả về tất cả các tài liệu trong bộ sưu tập MongoDB Thí dụ Xem xét một ví dụ về nhân viên với cơ sở dữ liệu của employee_id và employee_name và chúng tôi sẽ tìm nạp tài liệu bằng phương thức find() Đầu tiên, tạo một cơ sở dữ liệu với tên “nhân viên” với đoạn mã sau sử dụng nhân viên Bây giờ, hãy tạo một bộ sưu tập “nhân viên” với db.createCollection("employee") Trong bước tiếp theo, chúng tôi sẽ chèn các tài liệu vào cơ sở dữ liệu db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}]) Tìm tất cả Tài liệu Để lấy tất cả các bản ghi trong một bộ sưu tập, chúng ta cần sử dụng phương thức find với tham số trống. Nói cách khác, khi chúng tôi cần tất cả các bản ghi, chúng tôi sẽ không sử dụng bất kỳ tham số nào db.employee.find() Đầu ra trong Mongo Shell Phương thức pretty() có thể được sử dụng để hiển thị kết quả theo cách được định dạng cú pháp db.COLLECTION_NAME.find().pretty() Hãy kiểm tra tài liệu của chúng ta với phương thức pretty() Bộ lọc truy vấnChúng ta sẽ xem các ví dụ về thao tác truy vấn sử dụng thedb. thu thập. phương thức find() inmongosh Chúng tôi sẽ sử dụng bộ sưu tập nhân viên trong cơ sở dữ liệu nhân viên db.employee.insert([{employee_id: 101, employee_name: "Ishan", age: 21, email_id: "[email protected]"}, {employee_id: 102, employee_name: "Bhavesh", age: 22, email_id: "[email protected]"}, {employee_id: 103, employee_name: "Madan", age: 23, email_id: "[email protected]"}]) Như chúng ta đã thấy trước đó, để chọn tất cả các tài liệu trong cơ sở dữ liệu, chúng ta chuyển một tài liệu trống làm tham số bộ lọc truy vấn cho phương thức tìm Bạn lo lắng về cách bắt đầu sự nghiệp của mình trong lĩnh vực phát triển web? . db.employee.find().pretty() 1. Tìm tài liệu đầu tiên trong một bộ sưu tập.db.employee.findOne() 2. Tìm tài liệu theo ID.db.employee.findOne({_id : ObjectId("61d1ae0b56b92c20b423a5a7")}) 3. Tìm tài liệu phù hợp với tiêu chí truy vấndb.employee.find({“age”: “22”}) db.createCollection("employee")0 4. Sắp xếp kết quả theo trường.db. Nhân viên. tìm thấy(). sắp xếp ({tuổi. 1}). đẹp()theo độ tuổi, tăng dần db. Nhân viên. tìm thấy(). sắp xếp ({tuổi. -1}). đẹp()thứ tự theo tuổi, giảm dần VÀ Điều kiệnTruy vấn ghép có thể chỉ định điều kiện cho nhiều trường trong tài liệu trong bộ sưu tập. Liên kết logic AND kết nối gián tiếp các mệnh đề của truy vấn ghép, cho phép truy vấn chọn tất cả các tài liệu trong bộ sưu tập đáp ứng các điều kiện đã chỉ định Trong ví dụ sau, chúng tôi sẽ xem xét tất cả các tài liệu trong bộ sưu tập nhân viên trong đó employee_id bằng 101 và tuổi bằng 21 db.createCollection("employee")1 Truy vấn các trường lồng nhauTính năng nhúng hoặc lồng tài liệu trong MongoDB là một tính năng hữu ích. Tài liệu nhúng, còn được gọi là tài liệu lồng nhau, là tài liệu chứa các tài liệu khác Bạn chỉ cần nhúng một tài liệu vào bên trong một tài liệu khác trong MongoDB. Các tài liệu được xác định trong trình bao mongo bằng cách sử dụng dấu ngoặc nhọn () và các cặp giá trị trường được chứa trong các dấu ngoặc nhọn này Sử dụng dấu ngoặc nhọn, giờ đây chúng ta có thể nhúng hoặc đặt một tài liệu khác bên trong các trường này, có thể bao gồm các cặp giá trị trường hoặc tài liệu phụ khác cú pháp db.createCollection("employee")2 Thí dụ Chúng tôi có một cơ sở dữ liệu “nested” và trong cơ sở dữ liệu này, chúng tôi có bộ sưu tập “nesteddoc” Các tài liệu sau sẽ chèn vào thenesteddoccollection db.createCollection("employee")3 Đặt các tài liệu trong bộ sưu tập bây giờ. Ngoài ra, hãy xem kết quả Kết quả là, bộ sưu tập Nesteddoc chứa bốn tài liệu, mỗi tài liệu chứa các tài liệu lồng nhau. Phương thức find() có thể được sử dụng để truy cập tài liệu của bộ sưu tập db.createCollection("employee")4 Chỉ định điều kiện đẳng thức.Trong ví dụ này, chúng tôi sẽ chọn tài liệu từ truy vấn Nesteddoc trong đó dept bằng “A” db.createCollection("employee")5 Truy vấn mảngSử dụng tài liệu truy vấn {. } để chỉ định một điều kiện đẳng thức trên một mảng, trong đó mảng chính xác phù hợp, bao gồm cả thứ tự của các phần tử Truy vấn sau tìm kiếm tất cả các tài liệu có giá trị thẻ trường là một mảng có chính xác hai phần tử, "S" và "M" theo thứ tự được chỉ định db.createCollection("employee")6 Sử dụng toán tử $all để tìm một mảng chứa cả hai phần tử "S" và "M", bất kể thứ tự hoặc các phần tử khác trong mảng. db.createCollection("employee")7 Truy vấn một mảng cho một phần tử.Ví dụ sau truy vấn cho tất cả các tài liệu trong đó kích thước là một mảng chứa chuỗi “S” là một trong các phần tử của nó db.createCollection("employee")8 Điều kiện lọcĐể thảo luận về các điều kiện lọc, chúng tôi sẽ xem xét một tình huống xây dựng điều này. Chúng tôi sẽ bắt đầu bằng cách tạo một bộ sưu tập với tên “products” và sau đó thêm các tài liệu vào đó db.createCollection("employee")9 Để kiểm tra tài liệu, hãy sử dụng db. Mỹ phẩm. tìm thấy() 1. $gt$gt chọn tài liệu có giá trị trường lớn hơn (hoặc bằng) giá trị đã chỉ định db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])0 2. $gte.$gte tìm các tài liệu trong đó giá trị của một trường lớn hơn hoặc bằng (i. e. >=) một giá trị xác định (e. g. giá trị. ) db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])1 3. $lt.$lt chọn tài liệu có giá trị trường nhỏ hơn (hoặc bằng) giá trị đã chỉ định db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])2 4. $lte.$lte chọn tài liệu trong đó giá trị của trường nhỏ hơn hoặc bằng (i. e. =) giá trị được chỉ định db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])3 Truy vấn mảng theo độ dài mảng.Để tìm các mảng có số lượng phần tử cụ thể, hãy sử dụng toán tử $size. Ví dụ: sau đây chọn tài liệu có hai phần tử trong mảng db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])4 Phép chiếuTrong MongoDB, phép chiếu đề cập đến việc chỉ chọn dữ liệu được yêu cầu thay vì toàn bộ dữ liệu của tài liệu. Nếu một tài liệu có năm trường và bạn chỉ muốn hiển thị ba trường trong số đó, hãy chỉ chọn ba trường trong số đó Phương thức find() trong MongoDB chấp nhận tham số tùy chọn thứ hai, là danh sách các trường cần truy xuất, như được giải thích trong Tài liệu truy vấn MongoDB. Khi bạn sử dụng phương thức find() trong MongoDB, nó sẽ hiển thị tất cả các trường của tài liệu. Để ngăn chặn điều này, hãy tạo một danh sách các trường có giá trị 1 hoặc 0. Giá trị 1 cho biết trường sẽ hiển thị, trong khi 0 cho biết trường sẽ bị ẩn cú pháp db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])5 Thí dụ Chúng ta sẽ xem xét ví dụ trước về bộ sưu tập sản phẩm. Chạy lệnh dưới đây trên mongoshell để tìm hiểu cách hoạt động của phép chiếu db.employee.insert([{employee_id: 101, employee_name: "Ishan"}, {employee_id: 102, employee_name: "Bhavesh"}, {employee_id: 103, employee_name: "Madan"}])6 Hãy nhớ rằng trường _id luôn được hiển thị trong khi thực hiện phương thức find(); . Làm cách nào để tìm nạp dữ liệu cụ thể từ MongoDB?Để tìm nạp các giá trị trường cụ thể, hãy sử dụng toán tử inoperator . Thein chọn các tài liệu trong đó giá trị của một trường bằng bất kỳ giá trị nào trong mảng đã chỉ định.
Làm cách nào để tìm nạp dữ liệu từ 2 bộ sưu tập trong MongoDB?Để thực hiện MongoDB Tham gia hai bộ sưu tập, bạn phải sử dụng toán tử tra cứu $ . Nó được định nghĩa là một giai đoạn thực hiện nối ngoài bên trái với một bộ sưu tập khác và hỗ trợ lọc dữ liệu từ các tài liệu đã nối. Ví dụ: nếu người dùng yêu cầu tất cả các điểm từ tất cả học sinh, thì truy vấn bên dưới có thể được viết. Sinh viên. |