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
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
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
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
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
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
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ạ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â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
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”
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