Toán tử $ne (not equal - không bằng) trong MongoDB chọn document mà giá trị trường khác với giá trị chỉ định. Cú pháp: {trường: {$ne: giáTrị}}.
Tạo dữ liệu mẫu
Hiển thị tất cả:
{ "_id" : ObjectId("5cbd3a6bde8cc557214c0ded"), "StudentName" : "Larry", "StudentMathMarks" : 68 } { "_id" : ObjectId("5cbd3a79de8cc557214c0dee"), "StudentName" : "Chris", "StudentMathMarks" : 88 } { "_id" : ObjectId("5cbd3a89de8cc557214c0def"), "StudentName" : "David", "StudentMathMarks" : 45 } { "_id" : ObjectId("5cbd3a97de8cc557214c0df0"), "StudentName" : "Carol", "StudentMathMarks" : 69 }Truy vấn: StudentMathMarks KHÁC 88
{ "_id" : ObjectId("5cbd3a6bde8cc557214c0ded"), "StudentName" : "Larry", "StudentMathMarks" : 68 } { "_id" : ObjectId("5cbd3a89de8cc557214c0def"), "StudentName" : "David", "StudentMathMarks" : 45 } { "_id" : ObjectId("5cbd3a97de8cc557214c0df0"), "StudentName" : "Carol", "StudentMathMarks" : 69 }Đặc điểm quan trọng của $ne
- Khớp document không có trường đó (missing field) - khác với SQL WHERE field <> value
- Không tận dụng index hiệu quả (thường dẫn đến collection scan)
- Hoạt động với mọi kiểu dữ liệu: số, chuỗi, date, object, array, null
- Với array: Khớp nếu không có element nào bằng giá trị (khác $nin)
Mẹo tối ưu: Nếu có thể, viết lại dưới dạng $in với danh sách giá trị mong muốn, hoặc dùng $not: {$eq: value} (tương đương nhưng đôi khi optimizer xử lý tốt hơn).