Những truy vấn và tác vụ MongoDB bạn nên biết

MongoDB là một trong số database NoSQL được khao khát và ngưỡng mộ nhất cho phát triển chuyên nghiệp. Tính linh hoạt, khả năng mở rộng và xử lý khối lượng dữ liệu lớn khiến nó trở thành lựa chọn hàng đầu cho những ứng dụng hiện đại. Nếu muốn làm chủ các truy vấn & hoạt động thông thường của MongoDB, bạn nên đọc bài viết này.

MongoDB

Cho dù bạn đang tìm cách truy xuất hay thao tác dữ liệu, triển khai các mô hình mạnh mẽ hay xây dựng app đáp ứng, hiểu biết sâu về những truy vấn và hoạt động MongoDB thông thường đều có thể nâng cao kỹ năng của bạn.

Tạo hoặc chuyển database

Tạo database nội bộ qua MongoDB Shell đơn giản, nhất là khi bạn đã thiết lập một cụm từ xa. Bạn có thể tạo một database mới trong MongoDB bằng lệnh use:

use db_name

Trong khi lệnh trên tạo database mới, bạn có thể dùng nó để chuyển sang database hiện tại mà không cần phải tạo một file mới từ đầu.

Xóa database

Đầu tiên, chuyển sang database bạn muốn xóa bằng lệnh use như đã làm trước đó. Tiếp theo xóa database bằng lệnh dropDatabase():

use db_name
db.dropDatabase()

Tạo bộ sưu tập

Để tạo một bộ sưu tập, chuyển sang database mục tiêu. Dùng từ khóa createCollection() để tạo bộ sưu tập MongoDB mới:

db.createCollection("collection_name")

Thay thế collection_name bằng tên bộ sưu tập đã chọn.

Chèn tài liệu vào một bộ sưu tập

Trong khi gửi dữ liệu tới bộ sưu tập, bạn có thể chèn một tài liệu hoặc một mảng của tài liệu.

Để chèn một tài liệu:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Bạn cũng có thể dùng phương thức trên để chèn một mảng tài liệu bằng một ID:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Để chèn nhiều tài liệu cùng lúc, với từng ID riêng, dùng từ khóa insertMany:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

Lấy toàn bộ tài liệu từ một bộ sưu tập

Bạn có thể truy vấn toàn bộ tài liệu từ một bộ sưu tập bằng từ khóa find():

db.collection_name.find()

Lệnh trên trả về toàn bộ tài liệu bên trong bộ sưu tập đã chỉ định:

Hoạt động của MongoDB

Bạn cũng có thể hạn chế dữ liệu đã trả về một số cụ thể. Ví dụ, bạn có thể dùng lệnh sau để chỉ lấy hai tài liệu đầu tiên:

db.collection_name.find().limit(2)

Lọc tài liệu trong một bộ sưu tập

Hiện có nhiều cách để lọc tài liệu trong MongoDB. Hãy xem xét ví dụ sau:

Lọc tài liệu trong bộ sưu tập

Nếu chỉ truy vấn một trường cụ thể trong tài liệu, dùng phương thức find:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Lệnh trên trả về toàn bộ tài liệu tại nơi giá trị của LikesWordle. Nó chỉ xuất tên và bỏ qua ID tài liệu.

Hướng dẫn lọc tài liệu

Bạn cũng có thể lọc một bộ sưu tập theo nhân tố số. Giả sử bạn muốn lấy tên của tất cả người dùng lớn hơn 21 tuổi, sử dụng toán tử $gt:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Kết quả trông sẽ như sau:

Kết quả

Thử thay find bằng findOne để xem điều gì sẽ xảy ra. Tuy nhiên, hiện có nhiều từ khóa lọc khác:

  • $lt: Toàn bộ giá trị nhỏ hơn một giá trị nhất định.
  • $gte: Giá trị bằng hoặc lớn hơn giá trị cụ thể.
  • $lte: Giá trị nhỏ hơn hoặc bằng giá trị đã xác định.
  • $eq: Lấy toàn bộ giá trị bằng giá trị đã chỉ định.
  • $ne: Toàn bộ giá trị không bằng giá trị đã chỉ định.
  • $in: Dùng nó khi truy vấn dựa trên một mảng. Nó lấy toàn bộ giá trị khớp với bất kỳ mục trong mảng. Từ khóa $nin thì ngược lại.

Trên đây là những truy vấn và hoạt động MongoDB bạn cần biết. Hi vọng bài viết hữu ích với các bạn.

Thứ Sáu, 18/08/2023 14:33
51 👨 195
0 Bình luận
Sắp xếp theo