MONGODB CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Truy vấn Document trong MongoDB

Truy vấn dữ liệu từ một Collection trong MongoDB là một phần quan trọng của việc làm việc với cơ sở dữ liệu này. Trong bài viết này, mình sẽ tìm hiểu cách thực hiện các truy vấn đơn giản và mạnh mẽ trong MongoDB sử dụng phương thức find(). Mình cũng sẽ tìm hiểu về cách sử dụng pretty() để định dạng kết quả và cách kết hợp các điều kiện trong truy vấn.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Các phương thức truy vấn dữ liệu từ Collection trong MongoDB

Phương thức của find() trong MongoDB

Cú pháp:

Để truy vấn dữ liệu từ một Collection trong MongoDB, bạn sử dụng phương thức find(). Cú pháp cơ bản như sau:

db.COLLECTION_NAME.find()

Phương thức này sẽ hiển thị tất cả các Document trong Collection dưới dạng không có cấu trúc, làm cho chúng trở nên khó hiểu hơn.

Bài viết này được đăng tại [free tuts .net]

Phương thức của pretty() trong MongoDB

Để làm cho kết quả truy vấn trở nên dễ đọc hơn, bạn có thể sử dụng phương thức pretty().

Cú pháp:

>db.mycol.find().pretty()

Ví dụ:

>db.mycol.find().pretty()
{
   "_id": ObjectId(7df78ad8902c),
   "title": "MongoDB Overview", 
   "description": "MongoDB is no sql database",
   "by": "tutorials point",
   "url": "http://www.freetuts.net",
   "tags": ["mongodb", "database", "NoSQL"],
   "likes": "100"
}

Ngoài phương thức find(), MongoDB còn cung cấp phương thức findOne(), mà chỉ trả về một Document duy nhất.

Truy vấn dựa trên điều kiện trong MongoDB

Dưới đây là bảng tóm tắt các phép toán so sánh và cách chúng tương đương với các mệnh đề WHERE trong cơ sở dữ liệu:

Phép Toán Cú Pháp MongoDB Ví Dụ Mệnh Đề WHERE Tương Đương
Bằng (Equality) {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() WHERE by = 'tutorials point'
Nhỏ Hơn (Less Than) {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() WHERE likes < 50
Nhỏ Hơn Hoặc Bằng (Less Than Equals) {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() WHERE likes <= 50
Lớn Hơn (Greater Than) {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() WHERE likes > 50
Lớn Hơn Hoặc Bằng (Greater Than Equals) {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() WHERE likes >= 50
Không Bằng (Not Equals) {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() WHERE likes != 50

Mình đã xây dựng một bảng dễ hiểu để giúp bạn hiểu cách sử dụng các phép toán so sánh trong MongoDB để truy vấn dữ liệu. Sử dụng bảng này để thực hiện các truy vấn dựa trên điều kiện của riêng bạn và khám phá cơ sở dữ liệu MongoDB một cách linh hoạt.

Sử dụng AND trong MongoDB

Trong MongoDB, bạn có thể sử dụng phép toán AND để kết hợp nhiều điều kiện trong một truy vấn. Cú pháp cơ bản của AND trong MongoDB như sau:

db.mycol.find({key1: value1, key2: value2}).pretty()

Ví dụ: Dưới đây là một truy vấn MongoDB sử dụng AND để hiển thị tất cả loạt bài hướng dẫn (tutorials) được viết bởi 'tutorials point' có title là 'MongoDB Overview':

db.mycol.find({"by": "tutorials point", "title": "MongoDB Overview"}).pretty()

Kết quả của truy vấn này sẽ chứa các Document thỏa mãn cả hai điều kiện, tức là "by" phải là 'tutorials point' và "title" phải là 'MongoDB Overview'. Mệnh đề WHERE tương đương với ví dụ trên sẽ là 'WHERE by = 'tutorials point' AND title = 'MongoDB Overview''.

Sử dụng OR trong MongoDB

Để truy vấn Document dựa trên điều kiện OR, bạn cần sử dụng từ khóa $or. Cú pháp cơ bản của OR trong MongoDB như sau:

db.mycol.find({
   $or: [
      {key1: value1},
      {key2: value2}
   ]
}).pretty()

Ví dụ: Dưới đây là một truy vấn MongoDB sử dụng OR để hiển thị tất cả loạt bài hướng dẫn (tutorials) được viết bởi 'tutorials point' hoặc có title là 'MongoDB Overview':

db.mycol.find({$or: [{"by": "tutorials point"}, {"title": "MongoDB Overview"}]}).pretty()

Kết quả của truy vấn này sẽ chứa các Document thỏa mãn ít nhất một trong hai điều kiện, tức là "by" là 'tutorials point' hoặc "title" là 'MongoDB Overview'.

Kết hợp AND và OR trong MongoDB

Bạn cũng có thể kết hợp cả hai phép toán AND và OR để truy vấn dữ liệu theo nhiều điều kiện phức tạp hơn. Ví dụ sau đây hiển thị các Document mà có các like lớn hơn 100 và có title là hoặc 'MongoDB Overview' hoặc bởi là 'tutorials point'. Mệnh đề WHERE trong truy vấn SQL tương đương sẽ là 'WHERE likes > 100 AND (by = 'tutorials point' OR title = 'MongoDB Overview')'.

db.mycol.find({"likes": {$gt: 100}, $or: [{"by": "tutorials point"}, {"title": "MongoDB Overview"}]}).pretty()

Trong ví dụ này, chúng ta sử dụng AND để kết hợp điều kiện "likes" > 100 với OR giữa "by" là 'tutorials point' hoặc "title" là 'MongoDB Overview'. Kết quả sẽ chứa các Document thỏa mãn cả hai điều kiện AND và ít nhất một trong hai điều kiện OR.

Kết bài

Phương thức find() trong MongoDB là một công cụ mạnh mẽ cho việc truy vấn dữ liệu dựa trên các điều kiện cụ thể. Bằng cách sử dụng các phép toán so sánh và kết hợp chúng với AND hoặc OR, bạn có thể tạo ra các truy vấn phức tạp và linh hoạt. Điều này giúp bạn tìm kiếm và trích xuất dữ liệu một cách hiệu quả từ cơ sở dữ liệu MongoDB của mình.

Cùng chuyên mục:

Sử dụng Text Search trong MongoDB

Sử dụng Text Search trong MongoDB

Map Reduce trong MongoDB

Map Reduce trong MongoDB

ObjectId trong MongoDB

ObjectId trong MongoDB

Hoạt động nguyên tử (Atomic Operation) trong MongoDB

Hoạt động nguyên tử (Atomic Operation) trong MongoDB

Phân tích truy vấn trong MongoDB

Phân tích truy vấn trong MongoDB

Covered Query trong MongoDB

Covered Query trong MongoDB

Tham chiếu Database trong MongoDB

Tham chiếu Database trong MongoDB

Relationship trong MongoDB

Relationship trong MongoDB

Tạo backup và restore trong mongodb

Tạo backup và restore trong mongodb

Shard trong MongoDB

Shard trong MongoDB

Replica Set trong MongoDB

Replica Set trong MongoDB

Aggregation trong MongoDB

Aggregation trong MongoDB

Chỉ mục (Index) trong MongoDB

Chỉ mục (Index) trong MongoDB

Sắp xếp bản ghi trong MongoDB

Sắp xếp bản ghi trong MongoDB

Giới hạn bản ghi trong MongoDB

Giới hạn bản ghi trong MongoDB

Projection trong MongoDB

Projection trong MongoDB

Xóa Document trong MongoDB

Xóa Document trong MongoDB

Cập nhật Document trong MongoDB

Cập nhật Document trong MongoDB

Chèn Document trong MongoDB

Chèn Document trong MongoDB

Kiểu dữ liệu trong MongoDB

Kiểu dữ liệu trong MongoDB

Top