Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Thiết lập điều kiện $gt trong MongoDB $and

Toán tử $and thực hiện phép AND logic trên mảng các biểu thức. Kết hợp với $gt (greater than) để lọc phức tạp. Tạo collection:

> db.demo680.insertOne({Values:40});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea4461b04263e90dac943fe") }
> db.demo680.insertOne({Values:70});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea4461e04263e90dac943ff") }
> db.demo680.insertOne({Values:[80,30]});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea4462a04263e90dac94400") }
> db.demo680.insertOne({Values:20});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea4463304263e90dac94401") }

Hiển thị dữ liệu (một tài liệu có mảng Values=[80,30]):

> db.demo680.find();

Kết quả:

Tìm tài liệu thỏa MẤT: Values > 60 ($gt:60) **VÀ** Values chứa 30:

> db.demo680.find({$and : [{Values:{$gt:60}}, {Values:30}]})

Kết quả khớp tài liệu Values=[80,30] (có 80 > 60 VÀ có phần tử 30):

Giải thích:

  • {Values:{$gt:60}} - khớp nếu Values là số >60 HOẶC mảng chứa phần tử >60
  • {Values:30} - khớp nếu Values = 30 HOẶC mảng chứa 30
  • $and yêu cầu **CẢ HAI** điều kiện đúng trên cùng một tài liệu

Lưu ý: Với trường mảng, MongoDB so sánh từng phần tử. Tài liệu Values=[80,30] thỏa cả 2: có 80>60 VÀ có phần tử 30. Tài liệu Values=70 chỉ thỏa điều kiện 1.

Cách viết gọn (implicit AND): db.demo680.find({Values: {$gt: 60, $in: [30]}}) - nhưng $in ở đây không đúng ngữ nghĩa, nên dùng $and rõ ràng.