MongoDB kết hợp các điều kiện truy vấn bằng các toán tử logic — $and, $or, $not, $nor — cộng với phép AND ngầm của nhiều field trong một filter. Chúng cho phép bạn biểu diễn logic truy vấn phức tạp để tìm đúng những document bạn cần.
MongoDB kết hợp các điều kiện truy vấn bằng các toán tử logic — $and, $or, $not, $nor — cộng với phép AND ngầm của nhiều field trong một filter. Chúng cho phép bạn biểu diễn logic truy vấn phức tạp để tìm đúng những document bạn cần.
// nhiều field trong một filter = AND (tất cả phải khớp)
db.users.find({ active: true, age: { $gt: 18 } });
// → active = true VÀ age > 18 (không cần $and rõ ràng)
Trường hợp đơn giản nhất: liệt kê nhiều điều kiện trong một filter ngầm nối chúng bằng AND — cả/tất cả phải khớp.
// $or nhận một mảng điều kiện; một document khớp nếu BẤT KỲ điều kiện nào đúng
db.users.find({
$or: [
{ age: { $lt: 18 } },
{ age: { $gt: 65 } }
]
});
// → age < 18 HOẶC age > 65
// thường là ngầm, nhưng $and cần khi kết hợp các điều kiện trên CÙNG một field
db.products.find({
$and: [
{ price: { $gt: 100 } },
{ price: { $lt: 500 } }
]
});
// (thường bạn có thể viết { price: { $gt: 100, $lt: 500 } } thay thế — gọn hơn)
// $and cũng hữu ích để kết hợp các nhóm $or:
db.users.find({
$and: [
{ $or: [{ role: "admin" }, { role: "editor" }] },
{ active: true }
]
});
db.products.find({ price: { $not: { $gt: 100 } } }); // KHÔNG (price > 100) → price <= 100 hoặc thiếu
db.users.find({ $nor: [{ active: true }, { premium: true }] }); // KHÔNG điều kiện nào đúng
// truy vấn thực tế kết hợp toán tử logic + so sánh
db.orders.find({
status: "shipped", // AND ngầm
$or: [
{ total: { $gt: 1000 } },
{ priority: "high" }
]
});
// → status = shipped VÀ (total > 1000 HOẶC priority = high)
Toán tử logic là thiết yếu để biểu diễn các điều kiện truy vấn phức tạp trong MongoDB — truy vấn thực tế thường cần hơn một điều kiện (kết hợp nhiều tiêu chí với logic AND/OR), nên hiểu chúng là kiến thức nền tảng hằng ngày để lọc dữ liệu hiệu quả.
Biết AND ngầm của nhiều field filter (trường hợp đơn giản, phổ biến nhất — liệt kê các điều kiện mà tất cả phải khớp), $or (khớp bất kỳ một trong nhiều điều kiện — một nhu cầu thường xuyên cho các lựa chọn thay thế), $and (AND rõ ràng, cần để kết hợp các điều kiện trên cùng field hoặc nhóm các mệnh đề $or), và $not/$nor (phủ định) bao quát các khối logic xây dựng để biểu diễn yêu cầu truy vấn.
Hiểu cách kết hợp toán tử logic và so sánh (xây dựng các truy vấn như "status shipped VÀ (total > 1000 HOẶC priority high)") là cần thiết cho các truy vấn nhiều điều kiện thực tế mà ứng dụng yêu cầu.
Vì lọc dữ liệu với các điều kiện kết hợp là một nhu cầu phổ biến (tìm document khớp tiêu chí phức tạp), và vì các toán tử logic của MongoDB (AND ngầm, $or, $and, $not/$nor) là cách bạn biểu diễn logic này — kết hợp với toán tử so sánh cho các điều kiện thực tế — nên hiểu toán tử logic là kiến thức MongoDB thiết yếu, thường xuyên áp dụng để viết truy vấn hiệu quả, tương đương với việc thành thạo AND/OR/NOT trong mệnh đề WHERE của SQL, và cần thiết để tìm đúng những document bạn cần với các điều kiện thường phức tạp mà ứng dụng thực tế đòi hỏi.