MongoDB là một hệ thống quản lý cơ sở dữ liệu tiên tiến và mạnh mẽ đi kèm với các tính năng và chức năng tuyệt vời. Nó thậm chí đã trở thành mục yêu thích của các nhà phát triển hoặc lập trình viên mới bắt đầu
Nó được trang bị đầy đủ sức mạnh với một loạt các nhà khai thác cho phép các nhà phát triển tích hợp các tính năng đáng chú ý và khả năng nâng cao vào ứng dụng của họ. Người vận hành cho phép tùy chỉnh truy vấn, cập nhật, in và thay đổi dữ liệu trong cơ sở dữ liệu MongoDB. Với các tính năng tiên tiến trong dịch vụ cơ sở dữ liệu này, có rất nhiều ứng dụng thông minh hơn và hữu ích hơn đang mọc lên
Nó đã tìm thấy người hâm mộ ngay cả trong số những người mới bắt đầu cùng với các nhà phát triển cấp cao. Mặc dù danh sách các toán tử rất lớn, nhưng tôi ở đây để nói về toán tử $nin trong MongoDB còn được gọi là 'not in'
Toán tử $nin được tạo để sử dụng trên các mảng và nó cho phép chúng ta so khớp các tài liệu có giá trị trường mảng không có trong mảng đã cho. Hoặc, nó sẽ khớp với các tài liệu không tồn tại các trường đã cho
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn qua toán tử $nin trong MongoDB để bạn có thể hiểu rõ hơn về cách bạn có thể sử dụng nó trong ứng dụng của mình. Vì vậy, đừng giết nhiều thời gian nữa và hãy bắt đầu
Cú pháp toán tử $nin
Dưới đây là sơ lược về cú pháp của toán tử $nin trong MongoDB
{ field: { $nin: [ value1, value2 .. valueN ]} }
Sử dụng Toán tử $nin trong MongoDB
Chúng ta hãy bắt đầu với việc sử dụng toán tử $nin trong MongoDB bằng cách xem các ví dụ khác nhau
Kết hợp các giá trị trong mảng với toán tử $nin trong MongoDB
Trong ví dụ này, tôi sẽ so khớp những tài liệu có giá trị trường mảng không phải là giá trị đã chỉ định bằng cách sử dụng toán tử $nin trong MongoDB
- Chạy dịch vụ MongoDB
- Chọn cơ sở dữ liệu bạn muốn làm việc và di chuyển vào đó
show dbs use dronesWorld
- Trước tiên chúng ta hãy xem tất cả các tài liệu của chúng tôi trong bộ sưu tập
> db.drones.find[{}].pretty[] { "_id" : ObjectId["615f1672a7c6532312e3a41d"], "utility" : [ "Delivery" ], "onSale" : false, "name" : "Aurelize Frinworks Hawk 7", "price" : 12000, "weight" : "34 kilograms", "additionalDetails" : { "material" : "aluminum", "moreUses" : [ "Security", "Recreation" ] } } { "_id" : ObjectId["615f16eca7c6532312e3a41e"], "utility" : [ "Delivery" ], "onSale" : false, "name" : "Poka Moonskull 2X67", "price" : 76400, "weight" : "48 kilograms", "additionalDetails" : { "material" : "nylon", "moreUses" : [ "Monitoring or Inspection", "Recreation" ] } } { "_id" : ObjectId["615f17a5a7c6532312e3a41f"], "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "Jade Balestrom RW", "price" : 24500, "weight" : "27 kilograms", "additionalDetails" : { "material" : "lithium", "moreUses" : [ "Land Inspection", "Water Inspection" ] } } { "_id" : ObjectId["615f1879a7c6532312e3a420"], "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "VarX Lourra VQ [Limited Edition]", "price" : 49500, "weight" : "19 kilograms", "additionalDetails" : { "material" : "glass fiber", "moreUses" : [ "Photography", "Security" ] } } { "_id" : ObjectId["615f1922a7c6532312e3a421"], "utility" : [ "Security" ], "onSale" : false, "name" : "Mellori Styxe 175", "price" : 15000, "weight" : "10 kilograms", "additionalDetails" : { "material" : "carbon fiber", "moreUses" : [ "Monitoring or Inspection", "Recreation" ] } }
- Tiếp theo, chúng tôi sẽ tìm kiếm những tài liệu không có tiện ích là “Giao hàng” bằng cách sử dụng toán tử $nin
> db.drones.find[{utility: {$nin: ["Delivery"]}}].pretty[] { "_id" : ObjectId["615f17a5a7c6532312e3a41f"], "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "Jade Balestrom RW", "price" : 24500, "weight" : "27 kilograms", "additionalDetails" : { "material" : "lithium", "moreUses" : [ "Land Inspection", "Water Inspection" ] } } { "_id" : ObjectId["615f1879a7c6532312e3a420"], "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "VarX Lourra VQ [Limited Edition]", "price" : 49500, "weight" : "19 kilograms", "additionalDetails" : { "material" : "glass fiber", "moreUses" : [ "Photography", "Security" ] } } { "_id" : ObjectId["615f1922a7c6532312e3a421"], "utility" : [ "Security" ], "onSale" : false, "name" : "Mellori Styxe 175", "price" : 15000, "weight" : "10 kilograms", "additionalDetails" : { "material" : "carbon fiber", "moreUses" : [ "Monitoring or Inspection", "Recreation" ] } }
chúng ta đi thôi. Toán tử $nin chỉ xuất ra cho chúng ta những tài liệu không có tiện ích là “Giao hàng”, đây là một trường mảng
Khớp các giá trị không phải mảng với Toán tử $nin trong MongoDB
Trong ví dụ này, tôi sẽ so khớp những tài liệu có giá trị không phải mảng không phải là giá trị đã chỉ định bằng cách sử dụng toán tử $nin trong MongoDB
> db.drones.find[{name: {$nin: ["Aurelize Frinworks Hawk 7", "Jade Balestrom RW"]}}].pretty[] { "_id" : ObjectId["615f16eca7c6532312e3a41e"], "utility" : [ "Delivery" ], "onSale" : false, "name" : "Poka Moonskull 2X67", "price" : 76400, "weight" : "48 kilograms", "additionalDetails" : { "material" : "nylon", "moreUses" : [ "Monitoring or Inspection", "Recreation" ] } } { "_id" : ObjectId["615f1879a7c6532312e3a420"], "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "VarX Lourra VQ [Limited Edition]", "price" : 49500, "weight" : "19 kilograms", "additionalDetails" : { "material" : "glass fiber", "moreUses" : [ "Photography", "Security" ] } } { "_id" : ObjectId["615f1922a7c6532312e3a421"], "utility" : [ "Security" ], "onSale" : false, "name" : "Mellori Styxe 175", "price" : 15000, "weight" : "10 kilograms", "additionalDetails" : { "material" : "carbon fiber", "moreUses" : [ "Monitoring or Inspection", "Recreation" ] } }
Kinh ngạc. Toán tử $nin đã dẫn đến thành công những tài liệu có trường không phải mảng không khớp với giá trị tôi đã chỉ định
Kết hợp các giá trị trong Tài liệu lồng nhau với Toán tử $nin trong MongoDB
Trong ví dụ này, tôi sẽ khớp giá trị đã cho với các tài liệu lồng nhau bằng cách sử dụng toán tử $nin
> db.drones.find[{"additionalDetails.material": { $nin: ["glass fiber", "carbon fiber"]}}].pretty[] { "_id" : ObjectId["615f1672a7c6532312e3a41d"], "utility" : [ "Delivery" ], "onSale" : false, "name" : "Aurelize Frinworks Hawk 7", "price" : 12000, "weight" : "34 kilograms", "additionalDetails" : { "material" : "aluminum", "moreUses" : [ "Security", "Recreation" ] } } { "_id" : ObjectId["615f16eca7c6532312e3a41e"], "utility" : [ "Delivery" ], "onSale" : false, "name" : "Poka Moonskull 2X67", "price" : 76400, "weight" : "48 kilograms", "additionalDetails" : { "material" : "nylon", "moreUses" : [ "Monitoring or Inspection", "Recreation" ] } } { "_id" : ObjectId["615f17a5a7c6532312e3a41f"], "utility" : [ "Monitoring or Inspection" ], "onSale" : false, "name" : "Jade Balestrom RW", "price" : 24500, "weight" : "27 kilograms", "additionalDetails" : { "material" : "lithium", "moreUses" : [ "Land Inspection", "Water Inspection" ] } }
Tuyệt đấy. Bây giờ chúng tôi có những tài liệu đó trước mặt chúng tôi có giá trị tài liệu lồng nhau được chỉ định không khớp với giá trị được chỉ định, nhờ toán tử $nin