Bộ sưu tập thả mongodb nếu tồn tại

Từ tiêu đề, rõ ràng là chúng tôi sẽ thêm một số kiểm tra để tránh bộ sưu tập trùng lặp có sẵn trong cơ sở dữ liệu. Đây là một khái niệm rất quan trọng mà hầu như lập trình viên nào cũng cần phải sử dụng. Khái niệm này đang thực sự trở thành một thứ bắt buộc từ dự án nhỏ đến dự án lớn nơi nhà phát triển cần làm việc với nhiều bộ dữ liệu và bộ sưu tập khác nhau

Vì vậy, trong hướng dẫn hôm nay, chúng ta sẽ loại bỏ một bộ sưu tập nếu tồn tại. Bây giờ tôi sẽ thiết lập Dự án Node cho ví dụ này. Chúng tôi cũng sẽ viết một số hướng dẫn khác về cầy mangut nơi chúng tôi sử dụng cùng một dự án để hiển thị các ví dụ

Trước khi tôi tiếp tục, hãy để tôi nói với bạn một vài điều Mongoose

Nó là một Trình ánh xạ tài liệu đối tượng (ODM). ODM trong cầy mangut được sử dụng để xác định các đối tượng. Với Trình ánh xạ tài liệu đối tượng (ODM), bạn có thể xác định các lược đồ được gõ mạnh cho MongoDB để ánh xạ chúng với các tài liệu

Tôi giả định rằng bạn đã cài đặt nút và MongoDB trên hệ thống của mình. Nếu bạn chưa có thì hãy xem các hướng dẫn trước đây của chúng tôi. Hãy bắt đầu với dự án,

Hãy tạo một thư mục mới cho dự án này bằng cách sử dụng “mkdir”

Hãy vào bên trong thư mục đó

Hãy khởi tạo dự án nút

C. \mongooseproject>npm init

Khi bạn nhấn enter, nó sẽ hỏi bạn một số chi tiết. Bạn có thể điền những chi tiết đó nhưng chúng là tùy chọn. Đối với dự án thử nghiệm này, tôi để trống nhưng bạn phải điền nó cho các dự án của mình

Ở cuối bạn sẽ thấy một màn hình như thế này

Bộ sưu tập thả mongodb nếu tồn tại

Hãy cài đặt cầy mangut trong dự án của chúng ta trước, sau đó chúng ta tạo một kết nối và chèn một số dữ liệu

C. \mongooseproject>npm cài đặt cầy mangut --save

Bây giờ chúng tôi đã cài đặt cầy mangut vào dự án của chúng tôi. Sau khi cầy mangut được cài đặt, sau đó chúng ta cần tạo một chỉ mục. js là điểm vào của ứng dụng và cần để chạy ứng dụng

Bạn có thể thay đổi tên tệp nếu bạn muốn, tôi khuyên bạn nên sử dụng tệp này ngay bây giờ. Hãy kết nối với máy chủ MongoDB của chúng tôi bằng Mongoose. Để làm điều đó trước tiên chúng ta cần khởi động máy chủ MongoDB của mình. Bạn có thể khởi động máy chủ MongoDB theo hai cách, một là đồ họa bằng cách sử dụng Mongo Compass và một là sử dụng cmd

Vì vậy, hãy bắt đầu với cmd, nhập “mongod” và nhấn enter. Khi bạn làm điều đó, nó sẽ khởi động máy chủ của bạn và bạn sẽ thấy một cái gì đó tương tự như được hiển thị bên dưới trong dòng lệnh của bạn

Bộ sưu tập thả mongodb nếu tồn tại

Một thông báo được hiển thị ở cuối cùng, cho biết rằng kết nối đang chờ… Ý nghĩa của thông báo này là Mongo Server đang tìm kiếm một máy khách để kết nối và chơi với cơ sở dữ liệu. Hãy làm điều đó, đây là lệnh mà bạn cần nhập nhưng không đóng cmd đã mở lần cuối. Mở một cmd khác và nhập lệnh dưới đây

C. \>mongo -máy chủ cục bộ. 27017

Đừng quên mục tiêu của chúng ta. Chúng tôi sẽ "thả nếu bộ sưu tập tồn tại". Để đạt được mục tiêu, trước tiên chúng ta cần tạo cơ sở dữ liệu và bộ sưu tập

Bây giờ tôi sẽ tạo một cơ sở dữ liệu và một bộ sưu tập

>

sử dụng thực hành cầy mangut

    >
    chuyển sang db mongoosepractice >
    db. cầy mangut thực hành. insertOne({
        "Tên". "Patrick",
        "Tuổi". 21
    });

    "đã xác nhận". đúng,
    "insertedId". ObjectId("5d3c486ba35134f58358298f")

}

Với đoạn mã trên, chúng tôi đã tạo một cơ sở dữ liệu với tên “mongoosepractice” và chúng tôi đã tạo một bộ sưu tập có cùng tên với cơ sở dữ liệu “mongoosepractice”

Bạn có thể thấy điều này trong MongoDB Compass như hình bên dưới

Bộ sưu tập thả mongodb nếu tồn tại

Sau đó, chúng tôi đã chèn một tài liệu hoặc bạn có thể nói một bản ghi có tên và tuổi

Bộ sưu tập thả mongodb nếu tồn tại

Vì vậy, cuối cùng, chúng tôi đã tạo mọi thứ để thực hiện nhiệm vụ của mình

Bạn có thể thả bộ sưu tập theo hai cách, cách thứ nhất dễ dàng nhưng không được khuyến nghị. Bạn có thể truy cập MongoDB Compass và xóa “bộ sưu tập” và có một biểu tượng được cung cấp để làm điều đó. Bạn có thể xem hình bên dưới

Bộ sưu tập thả mongodb nếu tồn tại

Làm cách nào để xóa bộ sưu tập nếu tồn tại bằng Mongoose?

Bây giờ, chúng tôi đã cài đặt mọi thứ trong hệ thống của mình. Hãy thêm một số vào ứng dụng nút của chúng tôi để hoàn thành nhiệm vụ của chúng tôi

Hãy tạo kết nối bằng cầy mangut từ chỉ mục của chúng tôi. tệp js

Ở đây, mã được đưa ra mà bạn cần đưa vào chỉ mục. tập tin js

const mongooseconnection = require("mongoose");
mongooseconnection. kết nối ("mongodb. //127. 0. 0. 1. 27017/mongoosepractice", {
    useNewUrlParser. true
});
const connection = mongooseconnection. kết nối;
kết nối. once("open", function() {
    bảng điều khiển. log("MongoDB đã kết nối thành công");
});

Sau khi thêm mã chạy chỉ mục. js bằng lệnh

C. \mongooseproject>chỉ mục nút. js

Bạn sẽ thấy một kết nối được kết nối thành công trong kết quả. Bạn có thể xem hình bên dưới

Bộ sưu tập thả mongodb nếu tồn tại

Hãy làm bẩn tay chúng ta với một số mã cầy mangut. Đầu tiên, tôi muốn hiển thị việc chèn dữ liệu qua cầy mangut. Trong cầy mangut, bạn phải xác định một lược đồ về cơ bản nói về loại dữ liệu bạn muốn sử dụng trong Mongo. Đây là “Mô hình” được sử dụng để tạo một thể hiện cho dữ liệu bạn lưu trữ trong cơ sở dữ liệu

Ở đây tôi đã tạo một tệp khác có tên là “mô hình cầy mangut. js” chứa lược đồ và mô hình

mô hình cầy mangut. js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

var cầy mangut = yêu cầu("cầy mangut");
var userProfile = cầy mangut mới. Lược đồ({
    tên. {
      loại. Chuỗi
    },
    tuổi. {
      loại. Số
    }
});
mô-đun. xuất khẩu = cầy mangut. model("userProfile", userProfile);
var newUser = cầy mangut. model("userProfile", userProfile);
var userOne = new newUser({
    name. "Sam",
    tuổi. "20"
});

userOne. lưu(chức năng(lỗi) {
    bảng điều khiển. log("Người dùng Một đã được lưu. ");
    nếu (lỗi) {
      bảng điều khiển. lỗi(lỗi);
    }
});

Trong đoạn mã trên, chúng tôi đã tạo một lược đồ userProfile nơi chúng tôi muốn lấy tên và tuổi của người dùng. Để làm điều đó, chúng ta có phương pháp mongoose. Schema để xác định lược đồ

Sau bước đó, chúng tôi đã tạo một mô hình mà qua đó bạn có thể thêm một số dữ liệu vào cơ sở dữ liệu.  

Và ở dòng cuối cùng, chúng ta đã sử dụng phương thức lưu để lưu dữ liệu bên trong cơ sở dữ liệu. Khi bạn thêm mã này, bạn cần đưa tệp này vào tệp chính index.js. Bạn có thể làm điều đó bằng cách sử dụng một dòng mã

hồ sơ const = yêu cầu (". /mô hình cầy mangut. js");

Sau đó, bạn cần chạy ứng dụng bằng cách sử dụng,

C. \mongooseproject>chỉ mục nút. js

HOẶC LÀ

C. \mongooseproject>bắt đầu npm

Điều tiếp theo, tôi muốn chỉ ra cách dữ liệu được biểu diễn trong cơ sở dữ liệu. Nhìn vào hình bên dưới trong MongoDB Compass

Bộ sưu tập thả mongodb nếu tồn tại

Bạn có thể thấy rằng chúng tôi đã tạo một lược đồ có tên “userprofiles” được tạo dưới dạng một bộ sưu tập trong MongoDB

Chúng tôi cũng đã chèn một bản ghi hoặc như Mongo đề cập đến chúng, một tài liệu. Tài liệu cũng được hiển thị trong bộ sưu tập…

Bộ sưu tập thả mongodb nếu tồn tại

Bây giờ nhiệm vụ chính của chúng ta là kiểm tra xem nếu bộ sưu tập tồn tại thì hãy loại bỏ bộ sưu tập đó. Bạn phải cập nhật chỉ số. js và thay thế bằng mã dưới đây. Tôi sẽ trình bày ngắn gọn về cách hoạt động của mã

Mục lục. Đoạn mã js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

const mongooseconnection = require("mongoose");
mongooseconnection. kết nối ("mongodb. //127. 0. 0. 1. 27017/mongoosepractice", {
    useNewUrlParser. true
});
const connection = mongooseconnection. kết nối;
kết nối. once("open", function() {
    bảng điều khiển. log("MongoDB đã kết nối thành công");
    kết nối. db. listCollections(). toArray(function(err, names) {
      if (err) {
          bảng điều khiển. log(err);
        } other {
            for (i = 0; i < tên. chiều dài; . nhật ký (tên [i]. tên);
                console.log(names[i].name);
            nếu ((tên[i]. name = "userprofiles")) {
                bảng điều khiển. log("Bộ sưu tập hồ sơ người dùng tồn tại trong DB");
                mongooseconnection. sự liên quan. db. dropCollection(
                        “hồ sơ người dùng”,
                  chức năng(err, result) {
                      bảng điều khiển. log("Bộ sưu tập bị loại bỏ");
                      }
                );
                bảng điều khiển. log("Bộ sưu tập hồ sơ người dùng không còn nữa");
            } else {
              bảng điều khiển. log("Bộ sưu tập không tồn tại");
              }
          }
        }
    });
});

hồ sơ const = yêu cầu (". /mô hình cầy mangut. js");

Mục lục. js Ảnh chụp màn hình

Bộ sưu tập thả mongodb nếu tồn tại

Vài dòng đầu giống nhau. Vì vậy, ở đây tôi sẽ giải thích từ connection.once("open", function() {…}); nơi kết nối cơ sở dữ liệu mở ra. Chúng tôi hiển thị một thông báo sau khi kiểm tra xem MongoDB đã được kết nối hay chưa

bảng điều khiển. log("MongoDB đã kết nối thành công");

Trong dòng tiếp theo, chúng tôi sẽ liệt kê tất cả bộ sưu tập có trong cơ sở dữ liệu ở định dạng mảng

sự liên quan. db. listCollections(). toArray(hàm(err, tên) {

Sau đó, chúng tôi cũng đang kiểm tra bất kỳ loại lỗi nào bằng cách sử dụng câu lệnh if và có bất kỳ lỗi nào thì nó sẽ hiển thị trên bảng điều khiển bằng bảng điều khiển. tệp nhật ký. Nếu không tìm thấy lỗi thì nó sẽ chuyển sang phần khác nơi chúng tôi chạy một vòng lặp

for (i = 0; i < tên. chiều dài;

Với vòng lặp, chúng tôi sẽ trả lại tên của các bộ sưu tập, in chúng trên bàn điều khiển

for (i = 0; i < tên. chiều dài; . nhật ký (tên [i]. tên);
    console.log(names[i].name);

Trong dòng tiếp theo, chúng tôi đang kiểm tra bộ sưu tập với tên của nó nếu có trong cơ sở dữ liệu

if ((tên[i]. name = "userprofiles")) {
    bảng điều khiển. log("Bộ sưu tập hồ sơ người dùng tồn tại trong DB");

Nếu điều kiện trên là đúng thì nó sẽ xuống dòng tiếp theo và in câu lệnh đó. Sau đó, nó sẽ chuyển sang dòng tiếp theo nơi mã được viết để loại bỏ bộ sưu tập

kết nối cầy mangut. sự liên quan. db. dropCollection("userprofiles", function(
    err,
    result
) {
    bảng điều khiển. log("Bộ sưu tập bị rớt");
});

dropCollection() là một phương thức trong cầy mangut để xóa bộ sưu tập khỏi cơ sở dữ liệu

Cuối cùng, chúng ta phải đạt được mục tiêu của mình. Trước tiên, chúng tôi đã tạo mọi thứ từ đầu và liệt kê các bộ sưu tập bên trong cơ sở dữ liệu. Sau đó, chúng tôi đã thêm kiểm tra xem bộ sưu tập có tồn tại hay không và nếu tồn tại thì xóa bộ sưu tập đó

Hãy kiểm chứng điều này. Vì vậy, chúng tôi sẽ kiểm tra bằng la bàn MongoDB xem các bộ sưu tập có bị xóa hay không. Bạn có thể dễ dàng nhận thấy chúng tôi chỉ còn một bộ sưu tập duy nhất là “tập cầy mangut”

Bộ sưu tập thả mongodb nếu tồn tại

Phần kết luận

Điều này kết thúc bản demo của chúng tôi về cách loại bỏ một bộ sưu tập chỉ khi nó tồn tại bằng cách sử dụng Nút cầy mangut. thư viện js cho MongoDB. Chúng tôi hy vọng đây là thông tin cho bạn. Cảm ơn bạn rất nhiều vì đã đọc và vui lòng liên hệ với chúng tôi tại Object Rocket nếu bạn cần trợ giúp về dữ liệu MongoDB của mình. Thanks

Làm cách nào để kiểm tra xem bộ sưu tập có tồn tại trong MongoDB không?

Sử dụng Lớp DB . Nếu không có cơ sở dữ liệu, MongoDB sẽ tự động tạo một. Ở đây, phương thức collectionExists sẽ trả về true nếu bộ sưu tập tồn tại, ngược lại là false .

Làm cách nào để xóa bộ sưu tập khỏi 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() .

Việc xóa tất cả các bộ sưu tập trong cơ sở dữ liệu có xóa cơ sở dữ liệu MongoDB không?

Vâng, chào tất cả .