Dropdatabase mongodb

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ủ.  

Làm cách nào để xóa cơ sở dữ liệu trong MongoDB?

Các bước để loại bỏ cơ sở dữ liệu trong MongoDB .
Liệt kê tất cả các cơ sở dữ liệu có sẵn bằng cách sử dụng lệnh show dbs. .
Chọn và kết nối với cơ sở dữ liệu sẽ bị xóa bằng lệnh sử dụng trong trình bao MongoDB. .
Hủy cơ sở dữ liệu được kết nối bằng hàm dropDatabase()

Làm cách nào để xóa tất cả cơ sở dữ liệu trong MongoDB?

Dành cho MongoDB 4. 2, bạn phải. .
Chạy lệnh dropDatabase trên mongos
Khi lệnh hoàn thành thành công, hãy chạy lệnh dropDatabase một lần nữa trên mongos
Sử dụng lệnh flushRouterConfig trên tất cả các phiên bản mongos trước khi đọc hoặc ghi vào cơ sở dữ liệu đó

Phương pháp nào được sử dụng để loại bỏ cơ sở dữ liệu trong MongoDB?

MongoDB db. dropDatabase() lệnh được sử dụng để xóa cơ sở dữ liệu hiện có.

Làm cách nào để xóa một bảng trong MongoDB?

Bạn có thể xóa bảng hoặc bộ sưu tập vì nó được gọi trong MongoDB, bằng cách sử dụng phương thức drop() .