Việc sử dụng $NIN trong MongoDB là gì?

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

Nin trong MongoDB là gì?

Toán tử $nin trong MongoDB là gì? . Toán tử $nin (not in) là một trong những toán tử đó. Toán tử $nin được dùng để chọn tài liệu trong đó giá trị của một trường không bằng bất kỳ giá trị nào đã cho trong mảng .

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

Toán tử đẳng thức ($eq ) được sử dụng để so khớp các tài liệu trong đó giá trị của trường bằng với giá trị đã chỉ định . Nói cách khác, toán tử $eq được sử dụng để xác định điều kiện bình đẳng. Điểm quan trọng. Nếu giá trị đã cho là một tài liệu, thì thứ tự của các trường trong tài liệu là quan trọng.

Làm cách nào để sắp xếp dữ liệu trong MongoDB?

Đặt thứ tự sắp xếp .
Trong Thanh truy vấn, bấm Tùy chọn
Nhập tài liệu sắp xếp vào trường Sắp xếp. Để chỉ định thứ tự tăng dần cho một trường, hãy đặt trường thành 1 trong tài liệu sắp xếp. Để chỉ định thứ tự giảm dần cho một trường, hãy đặt trường và -1 trong tài liệu sắp xếp. .
Nhấp vào Tìm để chạy truy vấn và xem kết quả cập nhật

Việc sử dụng ký hiệu dấu chấm trong MongoDB là gì?

Trong truy vấn MongoDB, ký hiệu Dấu chấm là để khớp với các trường cụ thể trong tài liệu được nhúng . Khi trường chứa một mảng tài liệu được nhúng, thì để khớp với trường, hãy nối tên của trường chứa mảng đó với dấu chấm (. ) và tên của trường trong tài liệu được nhúng.