Giống như trong MongoDB

Nếu chúng ta muốn toán tử SQL like “Like” trong Mongodb để khớp chuỗi. Nhưng trong mongo DB không có toán tử “like” như vậy thay vào đó nó có biểu thức chính quy để đạt được một tính năng tương tự

db.users.insert({name: 'singh'})
db.users.insert({name: 'singhak'})
db.users.insert({name: 'aksingh'})

Mục lục

Trường hợp 1

Trong MongoDB, bạn cũng có thể sử dụng các đối tượng biểu thức chính quy (i. e.

Syntax: { : /pattern/ }
1) để chỉ định biểu thức chính quy

Syntax: { : /pattern/ }

ví dụ 1

--SQL
SELECT * FROM users  WHERE name LIKE '%sin%'

--MongoDB
db.users.find({name: /sin/})

ví dụ 2

--SQL
SELECT * FROM users  WHERE name LIKE '%gh'

--MongoDB
db.users.find({name: /gh$/})

ví dụ 3

--SQL
SELECT * FROM users  WHERE name LIKE 'ak%'

--MongoDB
db.users.find({name: /^ak/})

Nếu chúng ta muốn bỏ qua, chúng ta có thể sử dụng như thế này

db.users.find({name: /Sin/i})

cũng đọc. Bắt đầu mongo DB dưới dạng Dịch vụ

Trường hợp 2

chúng ta có thể sử dụng toán tử

Syntax: { : /pattern/ }
2, nó cung cấp khả năng biểu thức chính quy để so khớp mẫu chuỗi trong truy vấn. MongoDB sử dụng các biểu thức chính quy tương thích với Perl (i. e. “PCRE” ) phiên bản 8. 42 với hỗ trợ UTF-8

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,

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“

________số 8_______

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

db.Books.find( { Author:/rt$/ } )

Kết quả Mongo Shell,

 > db.Books.find({Author:/rt$/})
   { "_id" : ObjectId("5ff503cda29ce9564c2724e3"), "Name" : "Code Refactoring", "Price" : 43.15, "Category" : "Computers", "Author" : "Julia Robert"} 
Giống như trong MongoDB

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

Toán tử like trong MongoDB là gì?

MongoDB không hỗ trợ toán tử like thường gặp trong SQL. Chúng ta có thể đạt được chức năng tương tự của toán tử like bằng cách sử dụng hàm find() và biểu thức chính quy.

$$ bây giờ trong MongoDB là gì?

$$NOW là một biến tổng hợp , có nghĩa là nó chỉ có thể được sử dụng trong quy trình tổng hợp. Do tài liệu, phương thức save() không được dùng nữa. sử dụng insertOne() thay thế. Để chèn ngày hiện tại, bạn cần cung cấp giá trị ngày ở phía máy khách.

Regex tương đương trong MongoDB là gì?

MongoDB cũng cung cấp chức năng biểu thức chính quy để khớp mẫu chuỗi bằng cách sử dụng $regex toán tử . MongoDB sử dụng PCRE (Biểu thức chính quy tương thích Perl) làm ngôn ngữ biểu thức chính quy.

Chúng tôi có thể sử dụng $match trong Find MongoDB không?

Về cơ bản, MongoDB cung cấp các toán tử đối sánh khác nhau như $match và $count, v.v. cho người dùng và chúng tôi có thể sử dụng chúng theo yêu cầu của mình. We can also use a match operator for the aggregation pipeline.