Cách truy vấn hoạt động trong MongoDB

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 collection
1 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 collection
3, 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 collection
1 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 collection
1 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 collection
1 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 Norfolk
1], 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 Norfolk
2]. Đố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 Norfolk

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 Norfolk
4

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 Norfolk
5 [==],
db.Customers.find[{
   'Addresses.County': 'Norfolk'
}]

//returns the documents that have an address in the county of Norfolk
6 [>],
db.Customers.find[{
   'Addresses.County': 'Norfolk'
}]

//returns the documents that have an address in the county of Norfolk
7 [=],
db.Customers.find[{
   'Addresses.County': 'Norfolk'
}]

//returns the documents that have an address in the county of Norfolk
9 [

Chủ Đề