Trong bài viết này, chúng ta sẽ tìm hiểu những kiến thức cơ bản về MongoDB find, phương thức được sử dụng để tìm nạp tài liệu từ bộ sưu tập MongoDB
Chúng ta sẽ xem qua một số ví dụ về truy vấn bằng cách sử dụng Studio 3T và bộ dữ liệu Customers
, đây là một danh sách khách hàng hoàn toàn giả mạo
Phương thức
db.Customers.find[] //returns all documents in the collection1 trong MongoDB chọn tài liệu trong bộ sưu tập hoặc chế độ xem và trả về con trỏ tới tài liệu đã chọn. Nó có hai tham số. truy vấn và chiếu
db.collection.find[,]
- tham số 'truy vấn' hoặc bộ lọc đầu tiên chỉ định tìm kiếm
- tham số 'phép chiếu' tùy chọn thứ hai chỉ định phần nào của mỗi tài liệu phù hợp được trả về
Để viết và xây dựng các truy vấn
db.Customers.find[] //returns all documents in the collection3, chúng tôi sẽ sử dụng IntelliShell của Studio 3T với tính năng tự động hoàn thành truy vấn trong các ví dụ của chúng tôi
Nếu bạn không biết Ngôn ngữ truy vấn MongoDB, bạn vẫn có thể tạo các truy vấn
db.Customers.find[] //returns all documents in the collection1 thông qua Trình tạo truy vấn trực quan kéo và thả. Chỉ cần kéo các trường, xác định giá trị và nhấn Chạy
Nếu bạn thông thạo SQL và muốn tiết kiệm một chút thao tác gõ, Studio 3T cũng có Truy vấn SQL, cho phép bạn sử dụng SQL để truy vấn MongoDB
Dùng thử IntelliShell, Visual Query Builder và SQL Query bằng cách tải xuống phiên bản Studio 3T mới nhất
Chúng tôi sẽ truy vấn bộ sưu tập Customers
, có sẵn ở đây dưới dạng. tải xuống tệp json. Nếu bạn có một bộ sưu tập hiện có,
Mở Studio 3T và kết nối với cơ sở dữ liệu MongoDB của bạn
Tiếp theo, mở Trình hướng dẫn nhập từ thanh công cụ
Sau đó, chọn JSON làm định dạng nhập
Nhấp vào OK
Nhấp vào + để thêm tài liệu nguồn JSON, – để xóa chúng hoặc biểu tượng khay nhớ tạm để dán dữ liệu JSON từ khay nhớ tạm
Ở đây chúng tôi sẽ thêm tài liệu nguồn JSON của chúng tôi, Customers
Bấm đúp vào một ô để nhập vào bộ sưu tập đích. Chúng tôi đang đặt tên cho chúng tôi là Customers
. Lưu ý vốn C
Trong cột Chế độ chèn, bấm đúp vào một ô để chọn một trong các chế độ chèn từ trình đơn thả xuống
Nhấp vào Thực thi để chạy quá trình nhập. Bạn sẽ thấy bộ sưu tập mới trong cây kết nối, bên trái
Bây giờ chúng ta đã sẵn sàng thử các ví dụ về phương pháp
db.Customers.find[] //returns all documents in the collection1 mà bạn có thể nhập/dán và chỉnh sửa trong IntelliShell
Hãy mở IntellIShell bằng cách nhấp vào biểu tượng trên thanh công cụ
Và thử các truy vấn sau
db.Customers.find[] //returns all documents in the collection
Khi các tham số truy vấn và phép chiếu không được chỉ định, phương thức
db.Customers.find[] //returns all documents in the collection1 trả về tất cả các tài liệu trong bộ sưu tập
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk
Truy vấn này chỉ trả về các tài liệu có chứa địa chỉ ở hạt Norfolk. Có một tham số bộ lọc nhưng không có phép chiếu nào được chỉ định nên toàn bộ tài liệu với tất cả các trường được trả về
Ở đây chúng tôi đã chỉ định một danh sách các trường mà chúng tôi muốn trả về làm tham số phép chiếu
________số 8_______Khách hàng có thể sử dụng nhiều địa chỉ cùng một lúc [cơ quan, nhà riêng, v.v. ], và anh ta có thể di chuyển, vì vậy chúng tôi đã chọn chỉ trả lại địa chỉ phù hợp [
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk1], cùng với tên của khách hàng [
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk2]. Đối với truy vấn này, đó là tất cả dữ liệu chúng tôi cần, vậy tại sao phải truy xuất nhiều hơn mức cần thiết?
Tham số phép chiếu cho phép bạn chỉ định xem danh sách các trường hoặc mảng có được trả về hay không
Nếu bạn đang cung cấp một danh sách bao gồm dữ liệu sẽ được trả về, thì bạn chỉ được phép loại trừ trường
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk3
Nếu bạn muốn tìm kiếm ở nhiều quận thì sao?
db.Customers.find[{ 'Addresses.County': { $in: ['Essex', 'Suffolk', 'Norfolk', 'Cambridgeshire'] } }] //customers whose address is in East Anglia
Bộ lọc cho phép nhiều hơn bình đẳng đơn giản với một giá trị để chọn tài liệu. Trong trường hợp này, chúng tôi đã liệt kê một số giá trị để kiểm tra bằng cách sử dụng toán tử truy vấn so sánh
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk4
There are several others with fairly obvious meanings, such as
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk5 [==],
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk6 [>],
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk7 [=],
db.Customers.find[{ 'Addresses.County': 'Norfolk' }] //returns the documents that have an address in the county of Norfolk9 [