MongoDB truy vấn như

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ố 8

Kết quả Mongo Shell,

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

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

MongoDB truy vấn như

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

Làm cách nào để sử dụng câu lệnh SQL LIKE trong MongoDB?

Chúng tôi có thể triển khai chức năng của truy vấn tương tự trong Mongo DB bằng cách sử dụng hàm find() ở định dạng – db. bộ sưu tập. tìm() . Chúng ta có thể chỉ định chuỗi, biểu thức chính quy hoặc biểu thức chính quy để khớp các giá trị trong tham số của hàm find().

Làm cách nào để sử dụng regex trong MongoDB?

Nếu bạn muốn thêm một biểu thức chính quy bên trong danh sách điều kiện truy vấn được phân tách bằng dấu phẩy, thì bạn phải sử dụng toán tử $regex. If you want to use x and s options then you have to use $regex operator expression with $options. Starting from the latest version of MongoDB(i.e., 4.0.

Truy vấn MongoDB tương đương để làm gì?

Toán tử $eq khớp các tài liệu trong đó giá trị của trường bằng giá trị đã chỉ định . Chỉ định toán tử $eq tương đương với việc sử dụng biểu mẫu { trường.

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.