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ị sslsecurity.

$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.