Chương này giới thiệu về các toán tử logic của MongoDB, tương tự như các điều kiện "và" và "hoặc" trong SQL.

Các Toán Tử Logic Được Hỗ Trợ bởi MongoDB

Toán Tử Mô Tả
$and Tìm các tài liệu thỏa mãn tất cả các điều kiện đã chỉ định, tương tự như điều kiện "và" trong SQL
$not Thực hiện phép NOT logic trên biểu thức đã chỉ định
$or Tìm các tài liệu thỏa mãn ít nhất một trong số các điều kiện đã chỉ định, tương tự như điều kiện "hoặc" trong SQL
$nor Tìm các tài liệu không thỏa mãn cả hai điều kiện đã chỉ định

$and

Cú pháp:

{ $and: [ { <biểu thức1> }, { <biểu thức2> }, ... , { <biểu thứcN> } ] }

Giải thích:

  • <biểu thức> là một biểu thức con
  • $and lấy một mảng chứa một nhóm các biểu thức con, và tất cả các biểu thức con phải được thỏa mãn

Ví dụ:

db.inventory.find( { $and: [ { qty: { $lt : 10 } }, { qty : { $gt: 50 } }] } )

Tương đương SQL:

select * from inventory where qty > 50 and qty < 10

$not

db.inventory.find( { price: { $not: { $gt: 1.99 } } } )

Giải thích:

  • Nếu điều kiện là price > 1.99, thì phép NOT sẽ là price <= 1.99.
  • Điều này có nghĩa là truy vấn các tài liệu có giá nhỏ hơn hoặc bằng 1.99 hoặc trường giá không tồn tại.

Tương tự SQL:

select * from inventory where price <= 1.99

$or

Tương tự như điều kiện "hoặc" trong SQL Cú pháp:

{ $or: [ { <biểu thức1> }, { <biểu thức2> }, ... , { <biểu thứcN> } ] }

Giải thích:

  • <biểu thức> là một biểu thức con
  • $or lấy một mảng chứa một nhóm các biểu thức con, và ít nhất một biểu thức con phải được thỏa mãn

Ví dụ:

db.inventory.find( { $or: [ { quantity: { $lt: 20 } }, { price: 10 } ] } )

Tương đương SQL:

select * from inventory where quantity < 20 or price=10

$nor

Hoạt động NOR logic Cú pháp:

{ $nor: [ { <biểu thức1> }, { <biểu thức2> }, ... , { <biểu thứcN> } ] }

Ví dụ:

db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ]  } )

Giải thích:

  • price != 1.99 và sale != true, hoặc
  • price != 1.99 và trường sale không tồn tại, hoặc
  • trường price không