Giới thiệu chương
Trong chương này, chúng ta sẽ giới thiệu các toán tử khớp trường mảng trong tài liệu JSON của MongoDB.
Các Toán Tử Tra Cứu Mảng Được Hỗ Trợ Bởi MongoDB
Toán tử | Mô tả |
---|---|
$all | Khớp toàn bộ giá trị mảng trong điều kiện truy vấn |
$elemMatch | Đối với các trường mảng, nếu bất kỳ giá trị nào khớp với tất cả các điều kiện được đặt bởi $elemMatch, điều kiện được đáp ứng |
$size | Khớp kích thước mảng |
$all
{ tags: { $all: [ "ssl" , "security" ] } }
Tương đương với
{ $and: [ { tags: "ssl" }, { tags: "security" } ] }
Trường tags
là một giá trị mảng, và mảng tags
đồng thời chứa các giá trị ssl
và security
.
$elemMatch
Dữ liệu Kiểm thử
Dữ liệu bộ sưu tập scores
như sau:
{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }
Ví dụ:
db.scores.find(
{ results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)
Dữ liệu Trả về:
{ "_id" : 1, "results" : [ 82, 85, 88 ] }
Giải thích:
- Nếu bất kỳ giá trị nào trong mảng
results
lớn hơn hoặc bằng 80 và nhỏ hơn 85, tài liệu sẽ được khớp thành công.
$size
Khớp kích thước mảng
db.collection.find( { field: { $size: 2 } } );
Giải thích:
- Trường
field
là một giá trị mảng, và nếu kích thước mảng bằng 2, tài liệu sẽ được khớp thành công.