MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) mã nguồn mở được phát triển bởi MongoDB Inc. Nó được thiết kế để xử lý dữ liệu phi cấu trúc và lưu trữ dữ liệu dưới dạng tài liệu (document) thay vì bảng và hàng như trong cơ sở dữ liệu quan hệ.
Một số đặc điểm và lợi ích của MongoDB bao gồm:
- Dữ liệu không cấu trúc: MongoDB cho phép lưu trữ các tài liệu có cấu trúc linh hoạt, không yêu cầu sự định nghĩa trước về cấu trúc dữ liệu.
- Tính mở rộng dễ dàng: MongoDB hỗ trợ tính mở rộng ngang (horizontal scaling) một cách dễ dàng bằng cách phân tán dữ liệu trên nhiều máy chủ, giúp xử lý các khối lượng dữ liệu lớn và tải cao.
- Truy vấn linh hoạt: MongoDB cung cấp một ngôn ngữ truy vấn mạnh mẽ và linh hoạt, cho phép bạn truy vấn dữ liệu dựa trên các tiêu chí phức tạp và các phép toán logic.
- Tốc độ xử lý nhanh: Do dữ liệu được lưu trữ dưới dạng tài liệu và không có mối quan hệ phức tạp giữa các bảng, MongoDB cung cấp tốc độ xử lý cao cho các truy vấn và thao tác dữ liệu.
- Hỗ trợ đa dạng cho các ngôn ngữ lập trình: MongoDB cung cấp các trình điều khiển (driver) cho nhiều ngôn ngữ lập trình phổ biến như Python, Java, Node.js, PHP, để dễ dàng tích hợp và tương tác với cơ sở dữ liệu.
- Tích hợp dữ liệu: MongoDB hỗ trợ các tính năng như replica set và sharding, cho phép bạn sao chép dữ liệu và phân tán dữ liệu trên nhiều máy chủ, đảm bảo tính sẵn sàng và khả năng chịu lỗi.
MongoDB đã trở thành một trong những hệ quản trị cơ sở dữ liệu phi quan hệ phổ biến nhất, được sử dụng rộng rãi trong các ứng dụng web, ứng dụng di động, IoT và các lĩnh vực khác đòi hỏi sự linh hoạt và khả năng mở rộng của cơ sở dữ liệu.
Xem thêm Shell Collection trong MongoDB
Truy vấn Document trong MongoDB
Truy vấn Document trong MongoDB được thực hiện bằng cách sử dụng ngôn ngữ truy vấn MongoDB (MongoDB Query Language – MQL). Dưới đây là một số ví dụ về các truy vấn phổ biến trong MongoDB:
- Truy vấn tất cả các Document trong một Collection:
db.collection.find()
- Truy vấn Document theo điều kiện:
db.collection.find({ field: value })
Trong đó, collection
là tên của Collection cần truy vấn, field
là tên trường (field) trong Document, và value
là giá trị mà bạn muốn tìm kiếm.
- Truy vấn Document với các toán tử so sánh:
db.collection.find({ field: { $operator: value } })
Trong đó, $operator
là toán tử so sánh như $eq
(bằng), $ne
(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), vv.
- Truy vấn Document với các toán tử logic:
db.collection.find({ $and: [ { condition1 }, { condition2 } ] }) db.collection.find({ $or: [ { condition1 }, { condition2 } ] })
Bạn có thể sử dụng các toán tử logic như $and
(và), $or
(hoặc) để kết hợp nhiều điều kiện trong truy vấn.
- Truy vấn sắp xếp và giới hạn kết quả:
db.collection.find().sort({ field: 1 }).limit(10)
Trong ví dụ trên, sort()
được sử dụng để sắp xếp kết quả theo trường field
theo thứ tự tăng dần (1) hoặc giảm dần (-1), và limit()
được sử dụng để giới hạn số lượng kết quả trả về.
Đây chỉ là một số ví dụ cơ bản về cách truy vấn Document trong MongoDB. MQL cung cấp nhiều tính năng và toán tử khác nhau để bạn có thể thực hiện các truy vấn phức tạp và linh hoạt theo yêu cầu của ứng dụng của bạn.
Xem thêm Cập nhật Document trong MongoDB
Ví dụ về truy vấn Document trong MongoDB
Phương thức db.collection.find () đọc các hoạt động trong trình bao mongoDB và truy xuất các Document có chứa tất cả các trường của chúng.
Lưu ý: Bạn cũng có thể hạn chế các trường trả về trong Document đã truy xuất bằng cách sử dụng một số truy vấn cụ thể. Ví dụ: bạn có thể sử dụng phương thức db.collection.findOne () để trả về một Document. Nó hoạt động giống như phương thức db.collection.find () với giới hạn là 1.
Cú pháp:
db.COLLECTION_NAME.find ({})
Chọn tất cả các Document trong một Collection:
Để truy xuất tất cả Document từ một Collection, hãy đặt Document truy vấn ({}) trống. Nó sẽ như thế này:
db.COLLECTION_NAME.find ()
Ví dụ: Nếu bạn có tên Collection “canteen” trong cơ sở dữ liệu của mình có một số trường như thực phẩm, đồ ăn nhẹ, đồ uống, giá, v.v. thì bạn nên sử dụng truy vấn sau để chọn tất cả Document trong Collection “canteen”.
db.canteen.find ()
Dưới đây là một số ví dụ về truy vấn Document trong MongoDB:
- Truy vấn tất cả các Document trong một Collection:
db.users.find()
Truy vấn này sẽ trả về tất cả các Document trong Collection “users”.
- Truy vấn Document theo điều kiện:
db.users.find({ age: 25 })
Truy vấn này sẽ trả về các Document trong Collection “users” có trường “age” có giá trị là 25.
- Truy vấn Document với toán tử so sánh:
db.users.find({ age: { $gt: 30 } })
Truy vấn này sẽ trả về các Document trong Collection “users” có trường “age” lớn hơn 30.
- Truy vấn Document với toán tử logic:
db.users.find({ $and: [ { age: { $gte: 25 } }, { age: { $lt: 35 } } ] })
Truy vấn này sẽ trả về các Document trong Collection “users” có trường “age” từ 25 đến 34 (bao gồm cả 25 và 34).
- Truy vấn sắp xếp và giới hạn kết quả:
db.users.find().sort({ name: 1 }).limit(10)
Truy vấn này sẽ sắp xếp các Document trong Collection “users” theo trường “name” theo thứ tự tăng dần và giới hạn kết quả trả về là 10 Document.
Đây chỉ là một số ví dụ đơn giản về truy vấn Document trong MongoDB. Bạn có thể kết hợp các toán tử và điều kiện khác nhau để tạo ra các truy vấn phức tạp và linh hoạt hơn tùy thuộc vào yêu cầu của ứng dụng của bạn.
Tổng kết Truy vấn Document trong MongoDB
Truy vấn Document trong MongoDB là một phần quan trọng trong việc tương tác với cơ sở dữ liệu MongoDB. Bằng cách sử dụng ngôn ngữ truy vấn MongoDB (MQL), bạn có thể thực hiện các truy vấn linh hoạt để tìm kiếm, lấy và sắp xếp dữ liệu trong Collection.
Dưới đây là các điểm chính để tổng kết về truy vấn Document trong MongoDB:
- Cú pháp: Truy vấn Document trong MongoDB được thực hiện bằng cách sử dụng phương thức
find()
trên một Collection và truyền các điều kiện tìm kiếm dưới dạng đối tượng JSON. - Điều kiện tìm kiếm: Bạn có thể truy vấn Document dựa trên các điều kiện như giá trị của trường (field), toán tử so sánh và toán tử logic.
- Toán tử so sánh: MongoDB cung cấp các toán tử so sánh như
$eq
(bằng),$ne
(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), vv. - Toán tử logic: Bạn có thể kết hợp nhiều điều kiện bằng cách sử dụng các toán tử logic như
$and
(và),$or
(hoặc) trong truy vấn. - Sắp xếp và giới hạn kết quả: Bạn có thể sắp xếp kết quả theo trường (field) cụ thể và giới hạn số lượng kết quả trả về.
Truy vấn Document trong MongoDB cho phép bạn tìm kiếm dữ liệu theo các tiêu chí phức tạp, lấy dữ liệu dựa trên điều kiện và sắp xếp kết quả theo yêu cầu. Điều này giúp bạn tương tác linh hoạt với cơ sở dữ liệu MongoDB và truy xuất dữ liệu một cách hiệu quả.
Trong MongoDB, phương thức db.collection.find () được sử dụng để truy xuất Document từ một Collection. Phương thức này trả về một con trỏ đến các Document được truy xuất.
Các bài viết liên quan: