+2

Toán Từ Mongodb P1

Khi làm việc với MongoDB, việc truy vấn và phân tích dữ liệu hiệu quả là một yếu tố quan trọng để tối ưu hóa ứng dụng của bạn. Để làm được điều này, việc nắm vững các toán tử truy vấn của MongoDB là rất cần thiết. Các toán tử này giúp bạn dễ dàng tìm kiếm, lọc và phân loại dữ liệu theo nhiều tiêu chí khác nhau. Trong bài viết này, chúng ta sẽ cùng khám phá các toán tử so sánh và toán tử logic trong MongoDB, cùng với cú pháp và ví dụ cụ thể để bạn có thể áp dụng chúng trong các truy vấn của mình.

I. Toán Tử So Sánh

1. $eq (equal)

Toán tử $eq được dùng để tìm các document mà giá trị của trường bằng một giá trị cụ thể.

Cú pháp:

{ "field": { "$eq": value } }

Ví dụ:

db.collection.find({ "age": { "$eq": 25 } })

⇒ Truy vấn này tìm document mà trường age bằng 25.

2. $ne (not equal)

Toán tử $ne được dùng để tìm các document mà giá trị của trường không bằng một giá trị cụ thể.

Cú pháp:

{ "field": { "$ne": value } }

Ví dụ:

db.collection.find({ "status": { "$ne": "inactive" } })

⇒ Truy vấn này tìm document mà trường status không phải là "inactive".

3. $gt (greater than)

Toán tử $gt được dùng để tìm các document mà giá trị của trường có giá trị lớn hơn một giá trị cụ thể khác.

Cú pháp:

{ "field": { "$gt": value } }

Ví dụ:

db.collection.find({ "score": { "$gt": 80 } })

⇒ Truy vấn này tìm document mà trường score lớn hơn 80.

4. $lt (less than)

Toán tử $lt thường dùng để tìm các document mà giá trị của trường của chúng nhỏ hơn một giá trị cụ thể.

Cú pháp:

{ "field": { "$lt": value } }

Ví dụ:

db.collection.find({ "score": { "$lt": 50 } })

⇒ Truy vấn này tìm các document mà trường score nhỏhơn 50.

5. $gte (greater than or equal to)

Toán tử $gte dùng để tìm các document mà giá trị của trường dữ liệu lớn hơn hoặc bằng một giá trị cụ thể.

Cú pháp:

{ "field": { "$gte": value } }

Ví dụ:

db.collection.find({ "score": { "$gte": 50 } })

⇒ Truy vấn này tìm các document nơi mà giá trị của trường **score**lớn hơn hoặc bằng 50.

6. $lte (less than or equal to)

**Toán tử $lte**dùng để tìm các document có giá trị của của 1 trường nhỏ hơn hoặc bằng một giá trị cụ thể cần tìm .

Cú pháp:

{ "field": { "$lte": value } }

Ví dụ:

db.collection.find({ "age": { "$lte": 30 } })

⇒ Truy vấn này tìm document nơi mà trường age nhỏ hơn hoặc bằng 30.

7. $in (in)

**Toán tử $in**dùng để tìm các document mà giá trị của cầm tìm nằm trong một mảng.

Cú pháp:

{ "field": { "$in": [value1, value2, ...] } }

Ví dụ:

db.collection.find({ "category": { "$in": ["books", "electronics"] } })

⇒ Truy vấn này tìm các document có trường category là "books" hoặc "electronics".

8. $nin (not in)

Toán tử $nin dùng để tìm các document mà giá trị cần tìm không nằm trong một mảng cụ thê.

Cú pháp:

{ "field": { "$nin": [value1, value2, ...] } }

Ví dụ:

db.collection.find({ "status": { "$nin": ["inactive", "suspended"] } })

⇒ Truy vấn này tìm các document mà trường status không phải là "inactive" hoặc "suspended".

Tổng kết Toán Tử So Sánh:

  • $eq: So sánh bằng
  • $ne: So sánh không bằng
  • $gt: Lớn hơn
  • $lt: Nhỏ hơn
  • $gte: Lớn hơn hoặc bằng
  • $lte: Nhỏ hơn hoặc bằng
  • $in: Giá trị nằm trong mảng
  • $nin: Giá trị không nằm trong mảng

⇒ Các bạn có thể vào trang chính của mongodb để đọc kỹ hơn về toán tử so sánh nha

II. Toán Tử Logic

1. $and

Toán tử $and dùng để tìm document có nhiều biểu thức mà tất cả các điều kiện trong mảng đều được thỏa mãn.

Cú pháp:

{ "$and": [ { "field1": value1 }, { "field2": value2 } ] }

Ví dụ:

db.collection.find({ "$and": [ { "status": "active" }, { "age": { "$gte": 18 } } ] })

⇒ Truy vấn này tìm document có trường status là "active" và trường age lớn hơn hoặc bằng 18.

2. $or

Toán tử $or được dùng để tìm document có ít nhất một điều kiện trong mảng được thỏa mãn.

Cú pháp:

  • toán tử được phân biệt các giá trị cần tìm qua dấu “,”
{ "$or": [ { "field1": value1 }, { "field2": value2 } ] }

Ví dụ:

db.collection.find({ "$or": [ { "status": "active" }, { "age": { "$lt": 18 } } ] })

⇒ Truy vấn này tìm document nơi mà trường status là "active" hoặc trường age nhỏ hơn 18.

3. $not

Toán tử $not được dùng để tìm document nơi mà điều kiện không được thỏa mãn.Điều này bao gồm các tài liệu không chứa trường đó.

Cú pháp:

{ "field": { "$not": { "$condition": value } } }

Ví dụ:

db.collection.find({ "age": { "$not": { "$gte": 18 } } })

⇒ Truy vấn này tìm document mà trường age không bằng 18, hiểu đơn giản là sẽ tìm hết tất cả các trường tuổi trừ trường có tuổi bằng 18.

4. $nor

Toán tử $nor được dùng để tìm document mà không có điều kiện nào được thỏa mãn trong mảng được yêu cầu.

Cú pháp:

{ "$nor": [ { "field1": value1 }, { "field2": value2 } ] }

Ví dụ:

db.collection.find({ "$nor": [ { "status": "inactive" }, { "age": { "$gte": 18 } } ] })

⇒ Truy vấn này tìm các tài liệu mà trường status không phải "inactive" và trường age không lớn hơn hoặc bằng 18.

Tổng kết Toán Tử Logic:

  • $and: Tất cả các điều kiện trong mảng đều được thỏa mãn.
  • $or: Ít nhất một điều kiện trong mảng được thỏa mãn.
  • $not: Điều kiện không được thỏa mãn.
  • $nor: Không có điều kiện nào trong mảng được thỏa mãn.

⇒ Các bạn có thể vào trang chính của mongodb để đọc kỹ hơn về toán tử so sánh nha


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí