Toán tử trong mongodb là gì?

MongoDB đi kèm với một danh sách dài các toán tử cho nhiều mục đích khác nhau. Các toán tử này có thể được sử dụng cho nhiều mục đích khác nhau. Ví dụ: bạn có thể muốn lọc các truy vấn của mình trong cơ sở dữ liệu hoặc có thể thực hiện một hành động bên trong cơ sở dữ liệu của mình. Bạn thậm chí có thể muốn so sánh giữa các tài liệu. Chà, danh sách sẽ tiếp tục nếu tôi ngồi và liệt kê tất cả các trường hợp sử dụng

Hôm nay, toán tử $in trong MongoDB được chúng tôi quan tâm. Toán tử $in cho phép bạn tìm tài liệu một cách chính xác. Toán tử này cũng có thể được sử dụng với các phương thức find() và update()

Toán tử $in được sử dụng để chọn một tài liệu bên trong một bộ sưu tập. bằng cách so sánh các giá trị của một trường khớp với giá trị đã cho trong mảng. Trong trường hợp giá trị trường của tài liệu là một mảng, toán tử $in trong MongoDB sẽ chỉ chọn những tài liệu có trường chứa một mảng với ít nhất một mục khớp với giá trị đã cho trong đó

Trong hướng dẫn này, tôi sẽ giải thích cho bạn cách sử dụng toán tử $in cho nhiều mục đích sử dụng. Chúng tôi sẽ lấy một cơ sở dữ liệu ngẫu nhiên cho các ví dụ và bộ sưu tập của chúng tôi với một loạt tài liệu trong đó

Cú pháp của Toán tử $in trong MongoDB

{ field: { $in: [, , ..  ] }

Vì vậy, chúng ta hãy bắt đầu khám phá và làm việc với một số trường hợp sử dụng của toán tử $in trong MongoDB

Sử dụng toán tử $in trong MongoDB để so khớp các giá trị

Giả sử chúng tôi có ứng dụng cửa hàng máy bay không người lái và chúng tôi có cơ sở dữ liệu nơi chúng tôi lưu trữ tất cả các mặt hàng máy bay không người lái của mình. Bây giờ, hãy để chúng tôi tìm hiểu cách chúng tôi có thể trích xuất các tài liệu có kết quả phù hợp dựa trên một giá trị nhất định

Đối với hướng dẫn này, tôi đã tạo và lưu một số tài liệu trong bộ sưu tập máy bay không người lái của mình

Thực hiện theo các bước dưới đây để bắt đầu

  • Khởi động máy chủ MongoDB của bạn
  • Truyền lệnh này để liệt kê tất cả cơ sở dữ liệu của bạn và sử dụng cơ sở dữ liệu ưa thích của bạn

show dbs
use droneStore

  • Bây giờ, trước tiên chúng ta hãy liệt kê tất cả các tài liệu trong bộ sưu tập của mình. Sau đó, chúng tôi có thể sử dụng toán tử $in trên chúng để lọc ra dựa trên các giá trị cụ thể

db.drones.find({})

{ "_id" : ObjectId("6034fd2bf74cfd0438bdb19b"), "utility" : [ "Photography" ], "onSale" : false, "name" : "SV - Aira 157B", "price" : 2455, "weight" : "467 grams", "__v" : 0 }

{ "_id" : ObjectId("603502ba24df1c2350e676e7"), "utility" : [ "Monitoring or Inspection", "Security" ], "onSale" : false, "name" : "SV - Terrus D40", "price" : 5259, "weight" : "764 grams", "__v" : 0 }

{ "_id" : ObjectId("603502ba24df1c2350e676e8"), "utility" : [ "Recreation" ], "onSale" : false, "name" : "SV - Jovio J259", "price" : 1500, "weight" : "247 grams", "__v" : 0 }

{ "_id" : ObjectId("603502ba24df1c2350e676e9"), "utility" : [ "Delivery" ], "onSale" : false, "name" : "SV - CARRIER X288", "price" : 105499, "weight" : "26 kilograms", "__v" : 0 }

{ "_id" : ObjectId("60352beadecee830681c3b62"), "utility" : [ "Delivery" ], "onSale" : false, "name" : "SV - Grander 345X8", "price" : 43535, "weight" : "23 kilograms", "__v" : 0 }

{ "_id" : ObjectId("60352ecb6ce2811cc8892a75"), "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "SV - LaserX AW205", "price" : 4000, "weight" : "2.3 kilograms", "__v" : 0 }

{ "_id" : ObjectId("6157239d341d653bccaf7822"), "utility" : [ "Recreation" ], "onSale" : false, "name" : "DF - Jetfire Nitro RX-V", "price" : 22000, "weight" : "3 kilograms", "__v" : 0 }

{ "_id" : ObjectId("6157240c341d653bccaf7823"), "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "Pink Sentinel Q95", "price" : 13000, "weight" : "2 kilograms", "__v" : 0 }

{ "_id" : ObjectId("61573885341d653bccaf7825"), "utility" : [ "Security" ], "onSale" : false, "name" : "SV - Xorvia 9908Y", "price" : 7760, "weight" : "3.8 kilograms", "__v" : 0 }

{ "_id" : ObjectId("615738d6341d653bccaf7826"), "utility" : [ "Photography" ], "onSale" : false, "name" : "SV - Ryee SW657", "price" : 8900, "weight" : "760 grams", "__v" : 0 }

{ "_id" : ObjectId("61573946341d653bccaf7827"), "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "RV - Zereca Eagle-i", "price" : 3200, "weight" : "1.7 kilograms", "__v" : 0 }

{ "_id" : ObjectId("615739bb341d653bccaf7828"), "utility" : [ "Delivery" ], "onSale" : false, "name" : "OS - Falcon GO!", "price" : 45000, "weight" : "17 kilograms", "__v" : 0 }

  • Bây giờ chúng ta hãy sử dụng toán tử $in để tìm máy bay không người lái với tiện ích “Giải trí” và “An ninh”

Như bạn có thể nhận thấy, chúng tôi có bốn tài liệu được lọc ra có chứa tiện ích “Giải trí” và “Bảo mật”

Cập nhật tài liệu bằng Toán tử $in trong MongoDB

Bây giờ chúng ta hãy sử dụng phương thức update() trên tài liệu của mình để cập nhật giá trị của tài liệu. Hãy để chúng tôi xem làm thế nào chúng ta có thể làm như vậy. Dưới đây là các bước bạn có thể làm theo

> db.drones.find({utility: {$in: ["Security", "Recreation"]}})

{ "_id" : ObjectId("603502ba24df1c2350e676e7"), "utility" : [ "Monitoring or Inspection", "Security" ], "onSale" : false, "name" : "SV - Terrus D40", "price" : 5259, "weight" : "764 grams", "__v" : 0 }

{ "_id" : ObjectId("603502ba24df1c2350e676e8"), "utility" : [ "Recreation" ], "onSale" : false, "name" : "SV - Jovio J259", "price" : 1500, "weight" : "247 grams", "__v" : 0 }

{ "_id" : ObjectId("6157239d341d653bccaf7822"), "utility" : [ "Recreation" ], "onSale" : false, "name" : "DF - Jetfire Nitro RX-V", "price" : 22000, "weight" : "3 kilograms", "__v" : 0 }

{ "_id" : ObjectId("61573885341d653bccaf7825"), "utility" : [ "Security" ], "onSale" : false, "name" : "SV - Xorvia 9908Y", "price" : 7760, "weight" : "3.8 kilograms", "__v" : 0 }

  • Giả sử chúng ta muốn thay đổi máy bay không người lái bên dưới

{ "_id" : ObjectId("603502ba24df1c2350e676e8"), "utility" : [ "Recreation" ], "onSale" : false, "name" : "SV - Jovio J259", "price" : 1500, "weight" : "247 grams", "__v" : 0 }

  • Bây giờ, chúng ta sẽ chuyển lệnh này để thay đổi giá thành 2000 của máy bay không người lái này

> db.drones.update({name: {$in: ["SV - Jovio J259"]}}, {$set: {price: 2000}})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

  • Bây giờ chúng ta hãy kiểm tra lại tài liệu bằng cách sử dụng toán tử $in mặc dù chúng ta có thể chỉ cần sử dụng phương thức find() tại đây

> db.drones.find({name: {$in: ["SV - Jovio J259"]}})

{ "_id" : ObjectId("603502ba24df1c2350e676e8"), "utility" : [ "Recreation" ], "onSale" : false, "name" : "SV - Jovio J259", "price" : 2000, "weight" : "247 grams", "__v" : 0 }

Chúng ta đã sử dụng thành công toán tử $in trong MongoDB

Đọc thêm. Chèn tài liệu vào MongoDB bằng Mongoose – Hướng dẫn nhanh năm 2021

Phần kết luận

Hướng dẫn này thảo luận về cách bạn có thể sử dụng toán tử $in trong MongoDB để tra cứu tài liệu với một bộ lọc nhất định và cách thậm chí có thể cập nhật chúng

Chúng ta có thể sử dụng toán tử in trong MongoDB không?

Sử dụng Toán tử $in với Biểu thức chính quy . Truy vấn này chọn tất cả các tài liệu trong bộ sưu tập kho trong đó trường thẻ chứa một chuỗi bắt đầu bằng be hoặc st hoặc một mảng có ít nhất một phần tử bắt đầu bằng be hoặc st. You cannot use $regex operator expressions inside an $in . This query selects all documents in the inventory collection where the tags field holds either a string that starts with be or st or an array with at least one element that starts with be or st .

Toán tử ở đâu trong MongoDB?

Định nghĩa. Sử dụng toán tử $where để chuyển một chuỗi chứa biểu thức JavaScript hoặc hàm JavaScript đầy đủ tới hệ thống truy vấn . $where cung cấp tính linh hoạt cao hơn, nhưng yêu cầu cơ sở dữ liệu xử lý biểu thức hoặc hàm JavaScript cho từng tài liệu trong bộ sưu tập.

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

Có một vài yêu cầu hệ thống chính cần xem xét. .
Bạn cần đảm bảo rằng cả MongoDB và trình điều khiển Java MongoDB đều được cài đặt và định cấu hình đúng cách
Bạn cũng cần xác nhận rằng Java JDK mới nhất đã được cài đặt và cấu hình trước đó
Cuối cùng, bạn cần xác nhận rằng dịch vụ MongoDB đang chạy

Làm cách nào để tìm giá trị trong mảng trong MongoDB?

Để truy vấn xem trường mảng có chứa ít nhất một phần tử có giá trị được chỉ định hay không, hãy sử dụng bộ lọc { . Để chỉ định điều kiện cho các phần tử trong trường mảng, hãy sử dụng các toán tử truy vấn trong tài liệu bộ lọc truy vấn. {