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

Truy vấn MongoDB so sánh trường trong mảng với $gt và $lt

Khi trường là mảng object, MongoDB so sánh từng element. Dùng $gt và $lt để lọc document có ít nhất một element thỏa mãn khoảng giá trị.

Tạo collection demo147:

> db.demo147.insertOne({"Details":[{"Score":45},{"Score":46}]});
> db.demo147.insertOne({"Details":[{"Score":65},{"Score":86}]});

Tìm document có Score > 45 VÀ < 50:

> db.demo147.find({'Details.Score':{$gt:45,$lt:50}});

Kết quả: document 1 khớp (có Score=46):

{
   "_id" : ObjectId("5e32fa21fdf09dd6d08539be"),
   "Details" : [{"Score":45},{"Score":46}]
}

Lưu ý: Document 1 có Score=45 (không >45) nhưng Score=46 thỏa mãn, nên cả document được trả về. Dùng $elemMatch nếu cần cùng một element thỏa cả hai điều kiện.