/ / Cách tạo chỉ mục trong MongoDB: Giải thích ví dụ

Cách tạo chỉ mục trong MongoDB: Giải thích ví dụ

Như với bất kỳ cơ sở dữ liệu nào, chỉ mục là cấu trúc dữ liệu thiết yếu trong MongoDB. Chúng thúc đẩy các truy vấn cơ sở dữ liệu dễ dàng và cho phép bạn lưu trữ và sắp xếp một phần bộ sưu tập của mình trong các trường duy nhất. Các chỉ mục cũng hỗ trợ truy vấn phạm vi mà không gặp trở ngại.

Nếu ứng dụng của bạn sử dụng MongoDB, bạn muốn tận dụng sức mạnh của các chỉ mục để thực hiện các truy vấn của mình nhanh hơn và hiệu quả hơn. Vậy chỉ mục trong MongoDB là gì và bạn có thể tạo chúng như thế nào?

Chỉ mục trong MongoDB là gì?

Các chỉ mục trong MongoDB cho phép bạn ưu tiên một số trường trong tài liệu và biến chúng thành các tham số truy vấn sau này. Khi tạo một bộ sưu tập, MongoDB tạo một chỉ mục ID mặc định. Nhưng bạn có thể thêm nhiều hơn nữa nếu bạn có yêu cầu cao hơn hoặc nhu cầu sắp xếp.

Các chỉ mục duy nhất cũng ngăn chặn các bản sao trong quá trình nhập dữ liệu. Chúng rất hữu ích để từ chối các mục nhập đã tồn tại trong cơ sở dữ liệu. Vì vậy, bạn có thể sử dụng lập chỉ mục duy nhất trên tên người dùng và trường email.

Chỉ mục giúp bạn lấy cụ thể những gì bạn muốn bằng cách sử dụng định dạng truy vấn đã xác định của bạn với số lượng cần thiết mà không cần quét toàn bộ bộ sưu tập. Khi tạo chỉ mục, bạn có thể chỉ định cách bạn muốn dữ liệu của mình được sắp xếp bất cứ khi nào bạn truy vấn nó.

Ví dụ: nếu bạn quyết định sắp xếp các điểm dữ liệu theo ngày nhập của chúng mà không sử dụng chỉ mục, thông thường bạn sẽ cung cấp tiêu chí truy vấn và thứ tự sắp xếp.

Giả sử bạn muốn sắp xếp độ tuổi cao hơn một số nhất định theo ngày mục nhập giảm dần của chúng. Truy vấn của bạn thường trông giống như sau:

db.collectionName.find({age: {$gt: 50}}).sort({date: -1})

Nhưng nếu bạn đã có chỉ mục vào ngày nhập, bạn chỉ cần cung cấp tiêu chí truy vấn. Điều này là như vậy bởi vì bạn đã sắp xếp ngày giảm dần trong khi tạo chỉ mục.

Trong trường hợp đó, truy vấn trên sẽ trở thành:

db.collectionName.find({age: {$gt: 50}})

Cách tạo chỉ mục trong MongoDB

Bạn có thể tạo chỉ mục trong MongoDB bằng cách sử dụng giao diện shell tích hợp của nó. Vì vậy, đó là những gì chúng tôi sẽ sử dụng trong hướng dẫn này.

Tuy nhiên, các chỉ mục không tồn tại một mình. Bạn phải tạo một cơ sở dữ liệu và một bộ sưu tập trước khi có thể tạo một chỉ mục.

Như chúng tôi đã đề cập trước đây, một tính năng nổi bật của lập chỉ mục là nó cho phép bạn chỉ định các tiêu chí sắp xếp trong quá trình tạo chỉ mục.

Ví dụ: một chỉ mục sắp xếp tuổi theo thứ tự ngược lại trông như sau:

db.userCollection.createIndex({age: -1})

Số nguyên âm (-1) trong mã yêu cầu MongoDB sắp xếp tuổi theo thứ tự ngược lại bất cứ khi nào bạn truy vấn dữ liệu bằng cách sử dụng già đi mục lục. Do đó, bạn có thể không cần chỉ định thứ tự sắp xếp trong khi truy vấn vì chỉ mục đã xử lý điều đó.

Để tạo chỉ mục của cùng một trường tăng dần, hãy thay thế -1 với 1:

db.userCollection.createIndex({age: 1})

Mặc dù có các kiểu chỉ mục khác trong MongoDB, đây là cách tạo các dạng đơn và dạng kết hợp — vì chúng được sử dụng nhiều nhất.

Nhưng trước khi tiếp tục, hãy đảm bảo rằng bạn đã thiết lập máy chủ MongoDB trên PC của mình. Nếu bạn đã làm như vậy, hãy mở MongoDB shell và làm theo.

Tạo một chỉ mục duy nhất trong MongoDB

Lập chỉ mục đơn trong MongoDB rất đơn giản. Để bắt đầu, hãy chọn một cơ sở dữ liệu đã chứa các bộ sưu tập.

Giả sử tên cơ sở dữ liệu của chúng tôi là MUỘN:

use MUO

Khi bạn chọn một cơ sở dữ liệu, hãy sử dụng createIndex () lệnh trong trình bao để tạo một chỉ mục duy nhất.

Ví dụ: để tạo một chỉ mục tên người dùng duy nhất trong một bộ sưu tập và sử dụng nó để truy vấn theo thứ tự ngược lại:

db.collectionName.createIndex({username: -1})

Lập chỉ mục đa khóa trong MongoDB

Chỉ mục multikey rất hữu ích cho việc lập chỉ mục một trường trong một mảng dữ liệu phức tạp. Ví dụ: một tập hợp có thể chứa dữ liệu phức tạp của người dùng với thông tin của họ trong một mảng khác. Ví dụ: nói tên, chiều cao và tuổi.

Bạn có thể tạo chỉ mục multikey theo chiều cao của mỗi người dùng trong mảng đó như sau:

db.customers.createIndex({user.height: 1})

Các Chiều cao trong đoạn mã trên là một tập hợp con của người dùng cánh đồng.

Tạo chỉ mục tổng hợp

Một chỉ mục phức hợp chứa nhiều hơn một chỉ mục. Ví dụ: để tạo chỉ mục kết hợp của địa chỉ và loại sản phẩm trên tập hợp khách hàng:

db.customer.createIndex({address: 1, products: 1})

Vì bạn không cung cấp tên khi tạo chỉ mục trên, nên MongoDB sẽ tạo một chỉ mục theo mặc định. Nhưng nó phân tách tên của mỗi chỉ mục bằng một dấu gạch dưới. Vì vậy, nó khó đọc hơn, đặc biệt nếu bạn có nhiều hơn hai chỉ mục trong một hợp chất.

Để chỉ định tên khi tạo chỉ mục ghép:

db.customers.createIndex({location: 1, products: 1, weight: -1}, {name: "myCompundIndex"})

Nhận tất cả các chỉ mục trong một bộ sưu tập

Để xem tất cả các chỉ mục trong một bộ sưu tập:

db.collectionName.getIndexes()

Đoạn mã trên xuất ra tất cả các chỉ mục trong một tập hợp được đặt tên.

Tổ chức cơ sở dữ liệu của bạn với các chỉ mục

Lập chỉ mục trong MongoDB làm giảm độ trễ thời gian chạy khi thực hiện các truy vấn đồng thời. Thêm vào đó, chúng giúp bạn tổ chức cơ sở dữ liệu của mình và làm cho nó dễ truy cập hơn. Như bạn đã thấy, xét cho cùng thì việc tạo chỉ mục trong MongoDB không phức tạp. Các ví dụ ở đây đủ để giúp bạn bắt đầu với việc tạo chỉ mục. Tuy nhiên, để xem các chỉ mục của bạn trong thực tế, bạn cần biết cách truy vấn hoạt động trong MongoDB.


logo mongoDB
Cách thực hiện các hoạt động CRUD trong MongoDB

Làm quen với MongoDB rất khó. Đập đất chạy bằng CRUD.

Đọc tiếp


Giới thiệu về tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *