Tại sao chúng tôi sử dụng MongoDB với Node JS

Trong bài viết này, chúng ta sẽ nói về cách sử dụng cơ sở dữ liệu MongoDB với Node. js. Có một số cách để thực hiện việc này, bao gồm cách tiếp cận phổ biến - sử dụng Thư viện mô hình hóa đối tượng. Mongoose là một ví dụ về thư viện như vậy trong Node. js, tuy nhiên, chúng tôi sẽ sử dụng trình điều khiển MongoDB chính thức cho Node. js

Trong bài viết này, chúng tôi sẽ kết nối với máy chủ MongoDB, tạo tài liệu, truy xuất chúng từ cơ sở dữ liệu và cuối cùng xóa một số

Điều này sẽ được thực hiện thông qua một số tập lệnh, mặc dù bạn thường tích hợp chúng với máy chủ web/ứng dụng thay vì đặt chúng trong tập lệnh độc lập

MongoDB là gì?

MongoDB là một hệ thống quản lý cơ sở dữ liệu hướng tài liệu (DBMS) đa nền tảng (chạy trên nhiều hệ điều hành). MongoDB cũng là một cơ sở dữ liệu NoSQL, có nghĩa là nó không sử dụng SQL để thực hiện các thao tác trên cơ sở dữ liệu

MongoDB sử dụng các tài liệu có định dạng giống JSON, được gọi là BSON, là mã hóa nhị phân của JSON

Nó được phát triển như một dự án mã nguồn mở bởi MongoDB Inc. theo Giấy phép Công cộng Phía Máy chủ

Node và MongoDB hoạt động rất tốt với nhau, một phần vì Mongo sử dụng công cụ JavaScript được tích hợp trong cơ sở dữ liệu vì JavaScript xử lý tốt các đối tượng JSON

So với các cơ sở dữ liệu khác, chẳng hạn như MySQL, MongoDB nhanh chóng lưu trữ một số loại dữ liệu nhất định và có thể tự động thu nhỏ. Nó rất đơn giản để triển khai và chạy

Với Mongo là cơ sở dữ liệu NoSQL, nó có cách lưu trữ dữ liệu riêng. Dưới đây là một số cấu trúc tạo nên cấu trúc cơ sở dữ liệu

  1. cơ sở dữ liệu. Vùng chứa chứa một tập hợp các bộ sưu tập
  2. Bộ sưu tập. Một bộ tài liệu. Điều này tương tự như một bảng trong cơ sở dữ liệu SQL. Tuy nhiên, không giống như cơ sở dữ liệu SQL, một bộ sưu tập không có cấu trúc được thiết lập hoặc các kiểu dữ liệu được định cấu hình trước
  3. Các tài liệu. Một đối tượng giống như JSON. Điều này tương tự như một hàng trong cơ sở dữ liệu SQL. Một đối tượng JSON cũng có thể chứa các đối tượng con, một mảng, v.v.
  4. _Tôi. Trường duy nhất bắt buộc trong mọi tài liệu. Nó phân tách tài liệu này với tài liệu khác, vì vậy chúng tôi có thể xác định từng tài liệu một cách độc lập. Nếu giá trị này không được cung cấp, MongoDB sẽ tự động gán một giá trị ngẫu nhiên cho trường

Cấu hình của Dự án

Hãy bắt đầu với dự án và bỏ qua lời nhắc của

$ npm install --save mongodb
3

$ npm init -y

Sau đó, hãy cài đặt trình điều khiển MongoDB chính thức

$ npm install --save mongodb

Để thực sự kết nối với cơ sở dữ liệu, bạn cần đảm bảo rằng dịch vụ MongoDB của bạn đang chạy trong nền hoặc máy phát triển của bạn. Chạy lệnh

$ npm install --save mongodb
4 trên dấu nhắc lệnh của bạn để vào trình bao Mongo

Chạy lệnh

$ npm install --save mongodb
5 sẽ hiển thị danh sách các cơ sở dữ liệu hiện tại

Bạn có thể thoát trình bao bằng cách chạy lệnh

$ npm install --save mongodb
6

Không giống như cơ sở dữ liệu SQL, yêu cầu phải tạo cơ sở dữ liệu trước khi sử dụng - không cần phải tạo cơ sở dữ liệu hoặc bộ sưu tập trước. Chúng sẽ tự động được tạo khi có yêu cầu

Triển khai hoạt động CRUD

Với dự án của chúng tôi được khởi tạo và cài đặt MongoDB, chúng tôi có thể bắt đầu viết một số logic CRUD

Kết nối với cơ sở dữ liệu

Tất nhiên, để sử dụng MongoDB trong code, chúng ta cần import module

const mongodb = require('mongodb');

Sau đó, hãy khởi tạo một khách hàng

const MongoClient = mongodb.MongoClient;

Khách hàng cần biết nơi kết nối, vì vậy chúng tôi sẽ cung cấp cho họ một

$ npm install --save mongodb
7 và
$ npm install --save mongodb
8

Cuối cùng, hãy thử kết nối với cơ sở dữ liệu

Nếu bạn đã kết nối thành công với cơ sở dữ liệu, bạn sẽ thấy đầu ra

$ npm init -y
0

Nếu không, bạn sẽ được chào đón với một thông báo lỗi. Kiểm tra xem máy chủ có hoạt động không và nếu tên người dùng và mật khẩu là chính xác trong trường hợp đó

Như bạn có thể thấy trong ví dụ, phương thức

$ npm install --save mongodb
9 nhận hai tham số, URL của cơ sở dữ liệu và hàm gọi lại

Hàm gọi lại có hai tham số.

const mongodb = require('mongodb');
0 và
const mongodb = require('mongodb');
1

Tham số đầu tiên sẽ chứa lỗi nếu có bất kỳ sự cố mạng nào hoặc bất kỳ sự cố nào khác khi kết nối với cơ sở dữ liệu. Nếu không có vấn đề gì, lỗi sẽ là

const mongodb = require('mongodb');
2

Tham số thứ hai là đối tượng client mà chúng ta sử dụng để tương tác với cơ sở dữ liệu

Thuộc tính

const mongodb = require('mongodb');
3 của
const mongodb = require('mongodb');
1 chứa tham chiếu đến cơ sở dữ liệu. Để thực hiện bất kỳ hành động nào trên cơ sở dữ liệu đó, chúng tôi sử dụng tài liệu tham khảo này

Tạo một tài liệu

Để thực hiện bất kỳ hành động nào trên cơ sở dữ liệu, rõ ràng là bạn phải kết nối với nó. Với Mongo, có hai cách để chèn tài liệu vào cơ sở dữ liệu. Cách đầu tiên là thêm một tài liệu tại một thời điểm. Chúng ta có thể sử dụng phương pháp

const mongodb = require('mongodb');
5 để đạt được điều này

Tham số kết quả của cuộc gọi lại chứa thông tin về truy vấn. Nó có một trường tên là

const mongodb = require('mongodb');
6 trông giống như

$ npm init -y
9

const mongodb = require('mongodb');
7 là số lượng tài liệu được chèn vào.
const mongodb = require('mongodb');
8 là trạng thái của lệnh

Bạn không cần phải tạo rõ ràng cơ sở dữ liệu có tên là

const mongodb = require('mongodb');
9 hoặc bộ sưu tập có tên là
const MongoClient = mongodb.MongoClient;
0 trước khi chèn tài liệu. Cơ sở dữ liệu và bộ sưu tập sẽ được tạo tự động

Phương pháp thứ hai cho phép bạn thêm nhiều tài liệu cùng một lúc. Chúng ta có thể sử dụng phương pháp

const MongoClient = mongodb.MongoClient;
1 để đạt được điều này

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Chạy đoạn mã này sẽ mang lại

$ npm install --save mongodb
5

Vì chúng tôi chưa xác định một

const MongoClient = mongodb.MongoClient;
2 cho một trong hai tài liệu này, nên chúng tôi có thể tìm nạp
const MongoClient = mongodb.MongoClient;
2 được chỉ định từ đối tượng
const MongoClient = mongodb.MongoClient;
4 nếu chúng tôi cần truy cập vào
const MongoClient = mongodb.MongoClient;
2 đã tạo

Ngoài ra, bạn có thể tự xác định

const MongoClient = mongodb.MongoClient;
2

Truy xuất tài liệu

Truy xuất tất cả tài liệu

Đầu tiên, hãy xem cách lấy tất cả các tài liệu từ một bộ sưu tập

Chạy đoạn mã này sẽ mang lại cho chúng tôi

$ npm install --save mongodb
1

Như bạn có thể thấy trong ví dụ, chúng tôi đã chuyển một đối tượng trống (

const MongoClient = mongodb.MongoClient;
7) làm truy vấn

Theo tài liệu, phương thức

const MongoClient = mongodb.MongoClient;
8 trả về một mảng chứa tất cả các tài liệu từ một con trỏ. Phương pháp lặp lại hoàn toàn con trỏ, tải tất cả tài liệu vào RAM và làm cạn kiệt con trỏ

Các tài liệu được tìm nạp bởi bộ sưu tập sẽ được gán cho tham số

const MongoClient = mongodb.MongoClient;
9 trong hàm gọi lại

Tìm tài liệu bằng bộ lọc truy vấn

Phương pháp tiếp theo để tìm tài liệu là sử dụng bộ lọc truy vấn. Ví dụ: truy vấn sau đây chọn người dùng có tên đầu tiên là

$ npm init -y
00

$ npm install --save mongodb
6

Và để làm điều này trong mã

$ npm install --save mongodb
7

Mã này sẽ dẫn đến

$ npm install --save mongodb
0

Rõ ràng, tất cả các hồ sơ với

$ npm init -y
01
$ npm init -y
00 được trả lại

Cập nhật tài liệu

Hoạt động tiếp theo mà chúng ta sẽ nói đến là cập nhật một tài liệu. Để cập nhật một tài liệu, tương tự như truy xuất tài liệu, chúng ta có thể sử dụng phương thức

$ npm init -y
03

Mã này dẫn đến

$ npm install --save mongodb
1

Như bạn có thể thấy trong ví dụ, phương thức

$ npm init -y
03 chấp nhận ba tham số. Cái đầu tiên là bộ lọc truy vấn. Cái thứ hai là các giá trị cập nhật. Cái thứ ba là chức năng gọi lại, chấp nhận lỗi và kết quả dưới dạng tham số

Một lần nữa, kết quả ở đây thông báo cho chúng tôi về trạng thái (

const mongodb = require('mongodb');
8), số lượng tài liệu được chọn để cập nhật (
const mongodb = require('mongodb');
7) và số lượng tài liệu được cập nhật (
$ npm init -y
07)

const mongodb = require('mongodb');
7 có thể lớn hơn
$ npm init -y
07, nếu một trường được cập nhật với giá trị mà nó đã có

Sử dụng truy vấn này, chúng tôi đã chọn một tài liệu có trường

$ npm init -y
01 là
$ npm init -y
00 và chúng tôi đã thay đổi
$ npm init -y
92 của tài liệu đó thành
$ npm init -y
93. Ngoài ra, chúng tôi đã thêm một trường có tên là
$ npm init -y
94 và đặt nó là
$ npm init -y
95. Lưu ý cách chúng tôi không cần chỉ định hoặc tuân theo bất kỳ lược đồ nào trong toàn bộ quá trình này. Mongo chỉ chấp nhận bất kỳ dữ liệu nào bạn gửi

Nếu bạn đang sử dụng phương pháp

$ npm init -y
03, truy vấn sẽ chọn tài liệu đầu tiên có trường phù hợp. Nếu có nhiều tài liệu với một trường có cùng giá trị, sử dụng phương pháp
$ npm init -y
97 sẽ cập nhật tất cả chúng, điều mà trong một số trường hợp có thể không phải là điều chúng tôi muốn thực hiện

Ghi chú. Nếu bạn đang sử dụng phương pháp

$ npm init -y
03, lý tưởng nhất là truy vấn chỉ chọn một tài liệu duy nhất. Mặt khác, chúng tôi không thể dự đoán tài liệu có thể được cập nhật. Vì vậy, hãy ghi nhớ điều này và thận trọng khi sử dụng bộ lọc truy vấn có thể khớp với nhiều tài liệu

Chúng ta cũng có thể chỉnh sửa tất cả các tài liệu thỏa mãn điều kiện trường

$ npm init -y
01 là
$ npm init -y
00

Phương pháp

$ npm init -y
97 tương tự như phương pháp
$ npm init -y
03, ngoại trừ nó cập nhật tất cả các tài liệu phù hợp với bộ lọc truy vấn

Xóa tài liệu

Chúng tôi có thể sử dụng các phương pháp

$ npm install --save mongodb
53 hoặc
$ npm install --save mongodb
54 để xóa tài liệu khỏi bộ sưu tập

Mã này dẫn đến

$ npm install --save mongodb
2

Một lần nữa, theo cách tương tự như các ví dụ trước - tham số được chấp nhận đầu tiên là truy vấn bộ lọc và tham số thứ hai là hàm gọi lại. Hàm gọi lại trả về lỗi hoặc kết quả

Chạy đoạn mã này sẽ xóa tài liệu khớp với truy vấn - trong trường hợp này, tài liệu có trường

$ npm init -y
01 là
$ npm init -y
00. Một lần nữa, thao tác này sẽ chỉ xóa tài liệu đầu tiên phù hợp với truy vấn

Bạn cũng có thể sử dụng phương pháp

$ npm install --save mongodb
57 để xóa tất cả các tài liệu được chọn

Sự kết luận

MongoDB là một NoSQL phổ biến, cơ sở dữ liệu nhẹ, thực sự dễ triển khai và sử dụng với Node. Chúng tôi đã viết một ứng dụng Node rất đơn giản tương tác với MongoDB để tạo, truy xuất và xóa các bộ sưu tập

Tại sao nên sử dụng MongoDB với JavaScript?

Nó được sử dụng để thao tác lập trình nội dung của các trang web . Kết nối MongoDB JavaScript (NodeJS) sẽ làm cho các trang web và ứng dụng tương tác với người dùng, cho phép các công ty sử dụng dữ liệu thông qua kết nối MongoDB JavaScript (NodeJS) và thao tác dữ liệu.

Khi nào nên sử dụng NodeJS và khi nào nên sử dụng MongoDB?

Nhưng, MongoDB là cơ sở dữ liệu NoSQL được định hướng theo tài liệu. Nó đại diện cho dữ liệu dưới dạng tài liệu JSON. Nó được sử dụng để lưu trữ dữ liệu. Tóm tắt là MongoDB là một cơ sở dữ liệu nơi chúng tôi có thể lưu trữ dữ liệu và NodeJS giúp chúng tôi kết nối trang khách của chúng tôi với cơ sở dữ liệu bằng trang máy chủ của nó .

Mục đích của việc sử dụng MongoDB là gì?

Chức năng cốt lõi của MongoDB là khả năng mở rộng theo chiều ngang, giúp nó cơ sở dữ liệu hữu ích cho các công ty chạy các ứng dụng dữ liệu lớn . Ngoài ra, sharding cho phép cơ sở dữ liệu phân phối dữ liệu trên một cụm máy. Các phiên bản mới hơn của MongoDB cũng hỗ trợ tạo vùng dữ liệu dựa trên khóa phân đoạn.

Tại sao NoSQL được sử dụng với NodeJS?

Với nút. js NoSQL, các nhà phát triển của bạn có thể giảm đáng kể thời gian phát triển ứng dụng , do không có lược đồ cố định và khả năng truy vấn nhanh đi kèm với nó.