MongoDB là cơ sở dữ liệu NoSQL phổ biến nhất đối với cả doanh nghiệp và công ty khởi nghiệp, và thực tế là nó có khả năng mở rộng cao khiến nó hoàn toàn phù hợp với các ứng dụng web hiện tại, vốn cần mở rộng khi cơ sở người dùng tăng lên. MongoDB khác với các cơ sở dữ liệu quan hệ truyền thống vì nó sử dụng các đối tượng giống như json để lưu trữ dữ liệu, thay vì các bảng trong cơ sở dữ liệu quan hệ
Trong bài đăng này, chúng ta sẽ học cách xóa cơ sở dữ liệu MongoDB, sử dụng lệnh MongoDB Drop Database. Bỏ cơ sở dữ liệu có nghĩa là bỏ tất cả các bộ sưu tập [bảng trong MongoDB] trong đó, cùng với các chỉ mục. Nếu bạn không muốn loại bỏ toàn bộ cơ sở dữ liệu, bạn có thể loại bỏ các bộ sưu tập riêng lẻ
điều kiện tiên quyết
Chúng tôi đang sử dụng Windows 10 trong hướng dẫn này. Vui lòng đảm bảo rằng bạn đã tải xuống Máy chủ cộng đồng MongoDB và cài đặt nó. Đây là một thiết lập rất dễ dàng và bạn sẽ tìm thấy rất nhiều bài viết hay trên internet để hướng dẫn bạn thực hiện quy trình này. Đảm bảo rằng bạn đã thêm nó vào biến Môi trường trong PC của mình. Chúng tôi cũng đã tạo một cơ sở dữ liệu ví dụ, chứa một bộ sưu tập có tên là sản phẩm
Tổng quan
Việc xóa cơ sở dữ liệu khá đơn giản và có thể được thực hiện bằng ba phương pháp từ dòng lệnh và cũng bằng bất kỳ công cụ GUI [Giao diện người dùng đồ họa] nào, được sử dụng để kết nối với phiên bản MongoDB đang chạy
Để xóa cơ sở dữ liệu MongoDB thông qua dòng lệnh, chúng tôi chủ yếu sử dụng db. dropDatabase[]. Đầu tiên chúng ta sẽ hiểu làm thế nào để làm điều này
Thả định nghĩa cơ sở dữ liệu
Như đã đề cập trước đó, chúng tôi xóa cơ sở dữ liệu trong MongoDB hoặc xóa cơ sở dữ liệu MongoDB bằng lệnh db. lệnh dropDatabase[]
db.dropDatabase[]
Thao tác này sẽ xóa cơ sở dữ liệu hiện tại, xóa tất cả các bộ sưu tập bên trong nó, cùng với các chỉ mục
writeConcern là tham số tùy chọn, là tài liệu thể hiện mối quan tâm ghi để sử dụng, nếu lớn hơn đa số. Viết mối quan tâm có thể bao gồm các trường sau
{ w: , j: , wtimeout: }
- tùy chọn w được sử dụng để yêu cầu xác nhận, rằng thao tác ghi đã được chuyển đến một số phiên bản mongod cụ thể
- tùy chọn j được sử dụng để yêu cầu xác nhận rằng thao tác ghi đã được ghi vào nhật ký đĩa
- tùy chọn wtimeout được sử dụng để chỉ định giới hạn thời gian, để ngăn các thao tác ghi bị chặn vô thời hạn
Sử dụng tùy chọn w, các tùy chọn sau khả dụng
- w. 1 – Yêu cầu xác nhận rằng mối quan tâm ghi đã được chuyển đến phiên bản mongod duy nhất. Nó cũng là tùy chọn mặc định
- w. 0 – Không yêu cầu xác nhận thao tác ghi
- w. “đa số” – Nó yêu cầu xác nhận rằng thao tác ghi đã được chuyển đến phần lớn các máy chủ chính và phụ
Bây giờ, chúng ta sẽ xem xét các giá trị tùy chọn j
- j. true - Nó yêu cầu xác nhận rằng các phiên bản mongod khác nhau, được đề cập trong w. , đã được ghi vào tạp chí trên đĩa
Tùy chọn thời gian chờ chỉ định giới hạn thời gian tính bằng mili giây, cho mối quan tâm ghi. Nó khiến các thao tác ghi trở lại với lỗi sau giới hạn đã chỉ định
dropDatabase
Chúng ta cũng có thể trực tiếp sử dụng lệnh dropDatabase để xóa MongoDB, cơ sở dữ liệu hiện tại. Lệnh có dạng sau
{ dropDatabase: 1, writeConcern: , comment: }
Các trường tùy chọn của lệnh này là-
- writeConcern là tham số tùy chọn, ở dạng tài liệu thể hiện mối quan tâm ghi để sử dụng nếu nó lớn hơn đa số. Chúng tôi vừa xem xét nó một cách chi tiết trước đó
- bình luận là một bình luận do người dùng cung cấp, được đính kèm với lệnh này. Sau khi đặt, điều này sẽ xuất hiện trong nhật ký
Thả bằng lệnh dropDatabase
Chúng ta có thể thả cơ sở dữ liệu thông qua lệnh dropDatabase. Tôi được kết nối với phiên bản mongoDB cục bộ của mình từ thiết bị đầu cuối windows, bằng cách đưa ra lệnh mongo
> mongo
Sau đó để hiển thị tất cả các cơ sở dữ liệu trong cơ sở dữ liệu MongoDB của tôi, chúng tôi sẽ sử dụng lệnh show dbs command. Nó sẽ hiển thị tất cả các cơ sở dữ liệu của chúng tôi. Hết nó mình tạo ví dụ cơ sở dữ liệu thôi
> show dbs admin 0.000GB config 0.000GB example 0.000GB local 0.000GB
Bây giờ, để xóa cơ sở dữ liệu ví dụ, trước tiên chúng ta phải vào bên trong nó bằng cách sử dụng lệnh sử dụng ví dụ
> use example switched to db example
Bây giờ, chúng ta sẽ sử dụng lệnh dropDatabase từ bên trong một db. runCommand[]. Bây giờ, runCommand chạy lệnh trong ngữ cảnh của cơ sở dữ liệu hiện tại. Điều này có nghĩa là nó sẽ chạy lệnh dropDatabase trong cơ sở dữ liệu hiện tại, được thấy trong ví dụ này
> db.runCommand[ { dropDatabase: 1 } ] { "dropped" : "example", "ok" : 1 }
Như đã thảo luận, lệnh dropDatabase trước đó chấp nhận đối số writeConcern tùy chọn và cả trường nhận xét. Cú pháp sau đó được viết như hình dưới đây
{ dropDatabase: 1, writeConcern: , comment: }
Giảm với phương thức dropDatabase[]
Chúng tôi có thể bỏ cơ sở dữ liệu thông qua db. phương thức dropDatabase[] cũng. Nó cũng xóa cơ sở dữ liệu hiện tại, xóa tất cả các tệp liên quan
Một lần nữa kết nối với cơ sở dữ liệu mongoDb bằng cách đưa ra lệnh mongo. Sau đó, chúng ta có thể kiểm tra tất cả các cơ sở dữ liệu bằng lệnh show dbs
Đối với db. dropDatabase[], chúng ta cần vào bên trong cơ sở dữ liệu mà chúng ta đang drop, bằng cách sử dụng usecommand
Bây giờ, chúng ta sẽ sử dụng db. dropDatabase[] để xóa cơ sở dữ liệu, đây là ví dụ trong trường hợp của chúng tôi
> db.dropDatabase[] { "dropped" : "example", "ok" : 1 } The db.dropDatabase[] method also accepts an optional writeConcern argument. The syntax then becomes: { w: , j: , wtimeout: }
Giảm với lệnh Unix Shell và Eval
Phương pháp này chỉ hoạt động trong môi trường Unix như Ubuntu, Mac hoặc WSL2 cho Windows. Ở đây, lệnh mongo với tên cơ sở dữ liệu có thể được sử dụng để kết nối với một cơ sở dữ liệu cụ thể. Ví dụ, để kết nối với cơ sở dữ liệu ví dụ, chúng ta có thể sử dụng lệnh dưới đây
{ w: , j: , wtimeout: }0
Bây giờ, chúng ta có thể loại bỏ cơ sở dữ liệu mẫu của mình bằng một lệnh dòng, trong đó chúng ta sử dụng lệnh eval theo sau là mã JavaScript mà chúng ta muốn MongoDB thực thi. Như đã thấy trước đó để loại bỏ cơ sở dữ liệu, chúng tôi sử dụng db. lệnh dropDatabase[]. Bây giờ, chúng ta sẽ bọc phương thức này trong hàm printjson, để lấy đầu ra của lệnh
{ w: , j: , wtimeout: }1
Thả với MongoDB Compass
Giờ đây, chúng ta có thể bỏ cơ sở dữ liệu hoặc xóa cơ sở dữ liệu MongoDB rất dễ dàng bằng cách sử dụng công cụ Đồ họa như la bàn MongoDB. Nguyên vẹn công cụ này đã được tự động tải xuống khi tôi đã cài đặt MongoDB trên máy Windows của mình
Vì vậy, trước tiên hãy mở MongoDB Compass và bạn sẽ thấy tùy chọn kết nối với cơ sở dữ liệu. Chúng tôi muốn kết nối với cơ sở dữ liệu cục bộ của mình, trong đó tên máy chủ là localhost và cổng là 27017. Đây là các giá trị mặc định cho tất cả các kết nối MongoDB, trừ khi bạn thay đổi nó trong quá trình cài đặt
Đừng thay đổi bất cứ điều gì và nhấp vào nút Kết nối
Bây giờ chúng tôi đã kết nối với MongoDB đang chạy trên máy chủ cục bộ của chúng tôi và chúng tôi có thể thấy tất cả các cơ sở dữ liệu bao gồm cả cơ sở dữ liệu mẫu. Tiếp theo, di chuột qua cơ sở dữ liệu ví dụ, sẽ hiển thị nút xóa. Bấm vào nút xóa
Chúng tôi sẽ hiển thị một cửa sổ bật lên nơi chúng tôi phải viết tên cơ sở dữ liệu của mình, đây là ví dụ trong trường hợp của chúng tôi. Sau đó bấm vào nút DROP DATABASE, để MongoDB xóa cơ sở dữ liệu
Sau đó, nó sẽ đưa chúng ta trở lại màn hình trước đó và chúng ta có thể thấy cơ sở dữ liệu ví dụ đã bị hủy
Phần kết luận
Trong bài viết này, chúng ta đã tìm hiểu về các lệnh xóa cơ sở dữ liệu MongoDB khác nhau. Chúng tôi cũng đã tìm hiểu về tham số tùy chọn ghi mối quan tâm, tham số này có thể được chuyển cho cả db. phương thức dropDatabase[] và lệnh dropDatabase. Tham số này chủ yếu được sử dụng trong các hệ thống cơ sở dữ liệu lớn, có nhiều máy chủ.