Hôm nay trong bài viết này, chúng ta sẽ xem cách viết một truy vấn MongoDB Like bằng ví dụ [giống như truy vấn SQL 'like']. Chúng ta sẽ thấy một vài tình huống với các ví dụ và mẫu truy vấn
Hôm nay trong bài viết này, chúng tôi sẽ đề cập đến các khía cạnh dưới đây,
- Bắt đầu
- Tình huống 1 – Truy vấn MongoDB với tiêu chí 'Thích' ở nơi khác trong trường
- Tình huống 2 – Truy vấn MongoDB với 'Like' bắt đầu với một số tiêu chí
- Tình huống 3 – Lấy danh sách các mục kết thúc bằng một số tiêu chí
- Thích truy vấn bằng Regex?
- Truy vấn kiểu Mongodb không phân biệt chữ hoa chữ thường
Chúng ta sẽ xem cách chúng ta có thể sử dụng các truy vấn đơn giản đến phức tạp hoặc các mẫu biểu thức chính quy để khớp các tổ hợp ký tự trong chuỗi
Bắt đầu
Tôi có một tài liệu MongoDB mẫu như bên dưới trong một trong các bộ sưu tập. Ở đây chúng ta sẽ cố gắng tìm kiếm tất cả các tài liệu bằng cách sử dụng tương tự như “Like“
[ { "_id": "5db5a4476997188b2722c820", "Name": "Design Patterns", "Price": 54.93, "Category": "Computers", "Author": "Ralph Johnson" }, { "_id": "5ff50353a29ce9564c2724e2", "Name": "Design Patterns", "Price": 54.93, "Category": "Computers", "Author": "Mike Casper" }, { "_id": "5ff503cda29ce9564c2724e3", "Name": "Design Patterns", "Price": 54.93, "Category": "Computers", "Author": "Julia Robert" }, { "_id": "5f34a2430c3ca98a8c9052d2", "Name": "Design Patterns", "Price": 54.93, "Category": "Computers", "Author": "Ralph Johnson" } ]
Bây giờ chúng ta sẽ thử một vài bộ like trong truy vấn MongoDB
Tình huống 1 – Truy vấn MongoDB với tiêu chí 'Thích' ở nơi khác trong trường
Hãy xây dựng một truy vấn để lấy tên Tác giả trong đó tên chứa một từ như “J” cho trường Tác giả
giả định
“J” có thể được chứa ở đầu hoặc cuối hoặc ở giữa hoặc bất kỳ nơi nào khác của tên Tác giả
mẫu truy vấn
{ : /.your string ./ }
Trong đó 'J' là tiêu chí tìm kiếm của bạn
Truy vấn mẫu
{ Author: /.J./ }
Kết quả Mongo Shell,
> db.Books.find[{Author:/*.J.*/}]
{ "_id" : ObjectId["5db5a4476997188b2722c820"], "Name" : "Design Patterns", "Price" : 54.93, "Category" : "Computers", "Author" : "Ralph Johnson" }
{ "_id" : ObjectId["5f34a2430c3ca98a8c9052d2"], "Name" : "Design Patterns", "Price" : 56.00, "Category" : "Computers", "Author" : "Mike Johnson" }
Tình huống 2 – Truy vấn MongoDB với 'Like' bắt đầu với một số tiêu chí
hãy xây dựng một truy vấn để Lấy danh sách các mục bắt đầu với một số tiêu chí tìm kiếm. Ví dụ “Ro” cho trường Tác giả
mẫu truy vấn
{ Field Name : /^Ro/ }
Trong đó 'Ro' là tiêu chí tìm kiếm của bạn
Ghi chú. Truy vấn trên có truy vấn phân biệt chữ hoa chữ thường
Truy vấn mẫu
db.Books.find[ { Author:/^Ro/ } ]
Kết quả Mongo Shell,
> db.Books.find[{Author:/^Ro/}]
{ "_id" : ObjectId["5db5a4476997188b2722c821"], "Name" : "Clean Code", "Price" : 43.15, "Category" : "Computers", "Author" : "Robert C. Martin" }
Truy vấn trên, chúng ta có Tác giả “Robert C. Martin” phù hợp với tiêu chí tìm kiếm
Tình huống 3 – Lấy danh sách các mục kết thúc bằng một số tiêu chí
hãy xây dựng một truy vấn để Lấy danh sách các mục kết thúc bằng một số tiêu chí tìm kiếm. Ví dụ “rt” cho trường Tác giả
mẫu truy vấn
{ Field Name : /rt$/ }
Ghi chú. ví dụ hiển thị truy vấn phân biệt chữ hoa chữ thường
Truy vấn mẫu
________số 8Kết quả Mongo Shell,
> db.Books.find[{Author:/rt$/}] { "_id" : ObjectId["5ff503cda29ce9564c2724e3"], "Name" : "Code Refactoring", "Price" : 43.15, "Category" : "Computers", "Author" : "Julia Robert"}
Truy vấn trên, chúng tôi có Tác giả “Julia Robert” phù hợp với tiêu chí tìm kiếm
Thích truy vấn bằng Regex?
Tôi sẽ trình bày thêm một số truy vấn sử dụng regex trong bài viết tiếp theo,
Truy vấn kiểu Mongodb không phân biệt chữ hoa chữ thường
Vui lòng xem bài viết dưới đây để biết thêm ví dụ về MongoDB như truy vấn phân biệt chữ hoa chữ thường và truy vấn nhạy cảm
MongoDB là một máy chủ cơ sở dữ liệu Nosql mạnh mẽ. MongoDB sử dụng các tài liệu dạng JSON với các lược đồ tùy chọn để lưu trữ dữ liệu
Nó luôn luôn là một nhiệm vụ quan trọng để phát triển tổ chức dữ liệu. Vì nó đóng vai trò quan trọng nhất trong hiệu suất ứng dụng. Trong Mongodb, bạn có thể sử dụng các truy vấn tương tự như câu lệnh SQL LIKE để tìm nạp dữ liệu
Đối với các ví dụ được sử dụng trong hướng dẫn này, chúng tôi sử dụng một số dữ liệu giả như bên dưới. Bạn cũng có thể tạo cơ sở dữ liệu và thực hiện các lệnh bên dưới để chèn dữ liệu giả
{ : /.your string ./ }0
sử dụng. tìm thấy[]
Lệnh find[] Mongodb được sử dụng để tìm kiếm tài liệu từ một bộ sưu tập. Chức năng này cung cấp các tùy chọn linh hoạt để tìm kiếm tài liệu
Hàm find[] mặc định truy xuất tất cả các tài liệu trong một bộ sưu tập. Nó cũng cho phép bạn truy vấn một tập tài liệu, bằng cách chuyển một vài tham số đơn giản và trả về một con trỏ
Một ví dụ đơn giản của. phương thức find[] trông như bên dưới
{ : /.your string ./ }1
{ : /.your string ./ }2
Ở trên trả về tất cả các tài liệu trong một bộ sưu tập. Nhưng điều này rất không phổ biến đối với yêu cầu sản xuất. Bạn luôn yêu cầu một số kết quả được lọc từ cơ sở dữ liệu
Ví dụ: tìm nạp tất cả các tài liệu chứa “color. Hồng". Thực hiện truy vấn như
{ : /.your string ./ }3
sử dụng. find[] dưới dạng câu lệnh THÍCH SQL
Bạn có thể sử dụng biểu thức chính quy để tìm kiếm tài liệu trong mongodb. Điều này sẽ tương tự như câu lệnh LIKE trong truy vấn SQL