Làm cách nào để kết nối với cơ sở dữ liệu MongoDB trong JavaScript?

Trong bài đăng này, chúng tôi sẽ xem xét tất cả các khái niệm quan trọng của MongoDB và xem cách nó có thể giúp các nhà phát triển của chúng tôi cung cấp các sản phẩm tốt hơn và cải thiện trải nghiệm phát triển của chúng tôi

MongoDB là một cơ sở dữ liệu NoSQL lưu trữ dữ liệu trong các tài liệu linh hoạt, giống như JSON, có nghĩa là các trường có thể thay đổi từ tài liệu này sang tài liệu khác và cấu trúc dữ liệu có thể thay đổi theo thời gian

Trong thế giới hiện đại của chúng ta, dữ liệu rất rộng lớn, không có cấu trúc và đôi khi khó sử dụng. Nó có thể trở nên lớn và phức tạp rất nhanh, điều này có thể gây khó khăn cho việc lưu trữ nó trong cơ sở dữ liệu có cấu trúc bảng cố định

Hầu hết các dự án yêu cầu một giải pháp linh hoạt hơn và đó là nơi MongoDB ra đời. JSON linh hoạt của nó giống như các tài liệu cung cấp một cách dễ dàng và hợp lý để lưu trữ dữ liệu và cho phép các nhà phát triển của chúng tôi dễ dàng thay đổi cấu trúc dữ liệu của mình theo thời gian

Trong bài đăng này, chúng tôi sẽ xem xét các khái niệm quan trọng của MongoDB và xem cách nó có thể giúp các nhà phát triển của chúng tôi cung cấp các sản phẩm tốt hơn và cải thiện trải nghiệm phát triển của chúng tôi

SQL so với NoQuery

Trước khi tìm hiểu lý do tại sao chúng ta nên chọn MongoDB thay vì các cơ sở dữ liệu khác, trước tiên bạn nên hiểu rõ về sự khác biệt giữa cơ sở dữ liệu SQL và NoSQL

Cấu trúc

Cơ sở dữ liệu SQL sử dụng ngôn ngữ truy vấn có cấu trúc để xác định và thao tác dữ liệu của chúng. Chúng dựa trên bảng khiến chúng rất mạnh mẽ và là lựa chọn tuyệt vời cho các truy vấn phức tạp nhưng mặt khác, cũng có thể rất hạn chế. SQL yêu cầu sử dụng các lược đồ được xác định trước để xác định cấu trúc dữ liệu của chúng tôi, điều này có thể gây khó khăn cho việc thay đổi và duy trì cấu trúc dữ liệu theo thời gian

Mặt khác, NoSQL có các lược đồ động của dữ liệu phi cấu trúc và là tài liệu thứ tám, khóa-giá trị hoặc định hướng biểu đồ. Điều này có nghĩa là các tài liệu có thể được tạo mà không cần xác định lược đồ trước và mỗi tài liệu có thể có cấu trúc độc đáo của riêng nó. Nó cũng cung cấp khả năng dễ dàng thêm các trường khi bạn thực hiện mà không phải lo lắng về lược đồ dữ liệu

Khi nào thì sử dụng cái nào

SQL là một lựa chọn mạnh mẽ cho bất kỳ dự án nào sẽ được hưởng lợi từ cấu trúc dữ liệu được xác định trước và thiết lập các lược đồ. Nó cũng hữu ích nếu tất cả dữ liệu phải có cùng cấu trúc không có chỗ cho lỗi

NoSQL là một lựa chọn tuyệt vời cho các dự án không có định nghĩa lược đồ rõ ràng hoặc các công ty đang có tốc độ tăng trưởng nhanh. NoSQL cung cấp tính linh hoạt hơn nhiều, điều này cũng làm cho nó trở thành một lựa chọn tuyệt vời cho các dự án có nhiều mô hình dữ liệu khác nhau

Bây giờ chúng ta đã biết sự khác biệt chính giữa cơ sở dữ liệu SQL và NoSQL, hãy chuyển sang lý do tại sao chúng ta nên sử dụng MongoDB của tất cả các cơ sở dữ liệu hiện có

Ghi chú. Tôi vừa đưa ra một cái nhìn tổng quan nhanh về sự khác biệt quan trọng nhất giữa cơ sở dữ liệu SQL và NoSQL

Tại sao phải quan tâm đến MongoDB

Bây giờ câu hỏi vẫn là tại sao bạn nên sử dụng MongoDB ngay từ đầu. Dưới đây là một số lý do mà các nhà phát triển nên xem xét việc học và sử dụng MongoDB

Dưới đây là một số lợi ích tuyệt vời mà MongoDB mang lại

  • Schemaless [Hướng tài liệu có nghĩa là các tài liệu có thể khác nhau]
  • Giúp bạn xử lý một lượng lớn dữ liệu phi cấu trúc
  • Dễ dàng mở rộng quy mô
  • truy vấn phong phú
  • Lập chỉ mục trên bất kỳ thuộc tính nào
  • hỗ trợ chuyên nghiệp

Khi nào bạn nên sử dụng nó

Bây giờ chúng ta đã biết tại sao MongoDB lại hữu ích và nó có thể cải thiện các ứng dụng và trải nghiệm phát triển của chúng ta ở đâu. Nhưng nó không phải là giải pháp tốt nhất cho mọi dự án, vì vậy hãy xem nơi bạn chắc chắn nên sử dụng MongoDB

  • Khi bạn lưu trữ dữ liệu không có lược đồ
  • Khi bạn có một ứng dụng thường thêm các trường dữ liệu
  • Khi bạn cần lưu trữ dữ liệu linh hoạt
  • Khi bạn muốn mở rộng quy mô lưu trữ của mình theo chiều ngang

Cài đặt

Để thiết lập MongoDB, chúng ta chỉ cần tải bộ cài đặt về và thực hiện. Nếu bạn cần bất kỳ trợ giúp nào trong việc cài đặt MongoDB, tôi chỉ có thể khuyên bạn nên truy cập tài liệu chính thức hoặc bài đăng trên blog này của London App Brewery về việc cài đặt MongoDB trên Windows

Sau khi cài đặt nó, chúng ta có thể xem cách chúng ta có thể sử dụng nó trong các dự án của mình và chức năng CRUD cơ bản

Máy chủ cơ bản

Trước khi chúng ta có thể bắt đầu xem cách chúng ta có thể triển khai chức năng CRUD vào ứng dụng của mình, trước tiên chúng ta cần tạo một máy chủ MongoDB cơ bản

Để làm được điều đó, trước tiên chúng ta cần cài đặt phần phụ thuộc MongoDB trong dự án của mình và có thể làm như vậy bằng trình quản lý gói npm

npm install mongodb --save

Kết nối với MongoDB

Đầu tiên, chúng ta cần yêu cầu gói mongodb mà chúng ta vừa cài đặt và lấy đối tượng MongoClient từ nó

const mongo = require['mongodb'].MongoClient

Sau đó, chúng ta cần tạo một URL đến máy chủ MongoDB. Nếu bạn sử dụng nó cục bộ như tôi đang làm trong bài đăng trên blog này, thì URL sẽ giống như ‘mongodb. //máy chủ cục bộ. 27017’

const url = 'mongodb://localhost:27017'

Chúng tôi cũng cần xác định tên của cơ sở dữ liệu của chúng tôi

const dbName = 'exampleproject'

Sau đó, chúng ta cần sử dụng mongo. connect[] để lấy tham chiếu đến ứng dụng khách MongoDB của chúng tôi

mongo.connect[url, [err, client] => {
 if [err] {
  console.error[err]
  return
}
 console.log['Connected successfully to server']
 const db = client.db[dbName]
}]

Bây giờ chúng ta đã có cấu trúc cơ bản, hãy xem cách chúng ta có thể triển khai chức năng CRUD vào ứng dụng của mình

chức năng CRUD

Bây giờ, hãy xem cách chúng ta có thể triển khai chức năng CRUD [Tạo, Đọc, Cập nhật, Xóa] cơ bản

Để làm được điều đó, trước tiên chúng ta cần tạo hoặc lấy một bộ sưu tập cơ sở dữ liệu mà chúng ta sẽ làm việc trong đó. Chúng ta có thể làm như vậy bằng cách sử dụng hàm collection[] lấy tên bộ sưu tập làm đối số

const collection = db.collection['collectionname']

Tạo nên

Chúng ta có thể chèn một đối tượng vào cơ sở dữ liệu của mình bằng cách sử dụng hàm insertOne[] do MongoDB cung cấp

collection.insertOne[{ name: 'Test', age: '30' }, [[error, item] => {
 if[error] {
  console.error[error]
  return
 }
  console.log[item]
}]]

Chúng ta cũng có thể chèn nhiều mục bằng hàm insertMany[]

collection.insertMany[[{name: 'Test', age: '30'}, {name: 'Test2', age: '60'}], [error, result] => {

}]

Đọc

Hàm find[] được sử dụng để lấy tất cả các tài liệu của một bộ sưu tập

________số 8_______

Chúng ta cũng có thể truyền đối số cho hàm find[] để chỉ nhận các tài liệu cụ thể

collection.find[{name: 'Gabriel'}].toArray[[error, items] => {
  console.log[items]
}]

Nếu chúng ta chỉ muốn lấy một phần tử, chúng ta có thể bỏ qua hàm toArray bằng cách sử dụng findOne[]

const mongo = require['mongodb'].MongoClient
0

Cập nhật

Tiếp theo, hãy xem cách chúng ta có thể cập nhật một tài liệu đã tồn tại bằng cách sử dụng hàm updateOne[]

const mongo = require['mongodb'].MongoClient
1

Thay vào đó, chúng tôi cũng có thể cập nhật nhiều tài liệu bằng cách sử dụng hàm updateMany[]

const mongo = require['mongodb'].MongoClient
2

Xóa bỏ

Bây giờ hãy xem cách chúng tôi có thể xóa tài liệu trong cơ sở dữ liệu của mình

const mongo = require['mongodb'].MongoClient
3

Sử dụng hàm deleteOne[] nếu bạn chỉ muốn xóa một tài liệu

const mongo = require['mongodb'].MongoClient
4

thiết kế sơ đồ

Thiết kế lược đồ là một phần rất quan trọng của MongoDB và có thể giúp các nhà phát triển chúng tôi xây dựng các ứng dụng nhanh và mạnh mẽ hơn

Những lợi ích chung của việc sử dụng thiết kế lược đồ bao gồm

  • Ít ghi vào cơ sở dữ liệu hơn
  • Truy vấn đơn giản hơn và nhanh hơn
  • Đơn giản hóa thiết kế khi biết trước cấu trúc tài liệu
  • Giảm nợ kỹ thuật trong tương lai

Làm thế nào để chúng tôi thiết kế một lược đồ

Trước khi chúng ta có thể bắt đầu xem xét các lược đồ khác nhau, chúng ta cần tự hỏi mình một số câu hỏi về dữ liệu và cấu trúc dữ liệu của chúng ta. Đây là những điều quan trọng nhất

  • Các mẫu truy cập dữ liệu của bạn
  • Số lần đọc so với cập nhật
  • Kích thước của các tài liệu
  • Kích thước dữ liệu & chỉ mục
  • khả năng mở rộng

Nếu bạn muốn biết thêm về các mẫu lược đồ Mongo, bạn có thể xem video chính thức này từ nhóm MongoDB

Bây giờ chúng ta đã biết các phần quan trọng của thiết kế lược đồ MongoDB, hãy xem cách chúng ta có thể triển khai các lược đồ trong các ứng dụng Nodejs của mình

cầy mangut

Một tính năng tuyệt vời khác thường được sử dụng bên cạnh bản thân Mongo là Mongoose cung cấp giải pháp dựa trên lược đồ đơn giản để mô hình hóa dữ liệu ứng dụng của bạn và giúp xác thực và truyền dễ dàng hơn

Cài đặt Mongoose

Mongoose có thể được cài đặt bằng npm hoặc trình quản lý gói sợi trên toàn cầu hoặc chỉ cho một dự án

const mongo = require['mongodb'].MongoClient
5

Kết nối với MongoDB

Sau khi cài đặt phụ thuộc cầy mangut trong dự án của bạn, bạn có thể tiếp tục bằng cách khởi tạo kết nối đến cơ sở dữ liệu MongoDB của mình

const mongo = require['mongodb'].MongoClient
6

Bạn cũng có thể thêm một số nhật ký cơ bản để biết kết nối của mình được thiết lập chính xác hay lỗi đã xảy ra

const mongo = require['mongodb'].MongoClient
7

Tạo một lược đồ

Mongoose hiện cho phép chúng tôi tạo một lược đồ được xác định trước cho đối tượng cơ sở dữ liệu của chúng tôi giống như bạn sẽ làm với cơ sở dữ liệu SQL truyền thống. Lược đồ ánh xạ tới bộ sưu tập MongoDB và xác định hình dạng của tài liệu trong bộ sưu tập đó

const mongo = require['mongodb'].MongoClient
8

Mỗi chìa khóa trong cầy mangut của chúng tôi. Schema[] xác định một thuộc tính trong tài liệu của chúng tôi sẽ được chuyển thành SchemaType được liên kết của nó mà chúng tôi xác định

Bạn có thể xem tài liệu chính thức để có cái nhìn chi tiết hơn về các lược đồ

Tạo một mô hình

Bây giờ chúng ta đã có một lược đồ hoàn chỉnh theo ý của mình, chúng ta có thể tiếp tục biên dịch nó thành một mô hình

const mongo = require['mongodb'].MongoClient
9

Mô hình là một lớp được sử dụng để xây dựng các tài liệu cụ thể như bạn sẽ thấy trong bước tiếp theo

Lưu một mục

Mô hình của chúng tôi hiện cho phép chúng tôi tạo một tài liệu cụ thể mà chúng tôi có thể sử dụng trong các hoạt động cơ sở dữ liệu của mình

const url = 'mongodb://localhost:27017'
0

Sau khi tạo tài liệu, chúng ta có thể lưu nó bằng hàm save[]

const url = 'mongodb://localhost:27017'
1

Tìm kiếm một mục

Tìm kiếm một mục cũng là một quá trình hoàn toàn đơn giản có thể được thực hiện bằng một lệnh duy nhất

Phương thức find[] tìm tất cả các đối tượng trong bộ sưu tập đã cho phù hợp với truy vấn bạn đã truyền cho nó

const url = 'mongodb://localhost:27017'
2

Nếu bạn chỉ muốn tìm một mục duy nhất, tôi khuyên bạn nên sử dụng phương thức findOne[] để thay thế

Tập bản đồ Mongodb

MongoDB Atlas là một dịch vụ cơ sở dữ liệu đám mây toàn cầu cho phép bạn triển khai và quản lý các ứng dụng MongoDB trong một Cụm trên AWS, Azure hoặc GCP

Tại sao bạn nên sử dụng Atlas

Dưới đây là danh sách các lý do tại sao bạn nên sử dụng Atlas và nơi nó có thể giúp bạn trong quy trình làm việc của mình

  • Nhanh chóng và đơn giản - Atlas không yêu cầu bất kỳ tệp cài đặt hoặc cấu hình nào. Chỉ cần đăng ký, tạo cụm của bạn và bạn đã sẵn sàng
  • Cơ sở dữ liệu đám mây - Không cần cài đặt MongoDB trên máy của bạn. Đám mây cũng hữu ích khi chạy ứng dụng của bạn trong các cụm vùng chứa như Kubernetes
  • An toàn cho dữ liệu nhạy cảm - Atlas có các biện pháp kiểm soát bảo mật tích hợp cho tất cả dữ liệu của bạn
  • Bậc miễn phí tuyệt vời lên tới 512 MB dung lượng lưu trữ

Tôi sẽ không đi sâu hơn vào MongoDB Atlas trong bài viết này. Nếu bạn muốn tìm hiểu cách thiết lập một cụm và kết nối ứng dụng của mình với cụm đó, tôi khuyên bạn nên sử dụng tài liệu chính thức hoặc hướng dẫn này của Lenmor Ld

Phần kết luận

Bạn đã làm tất cả các cách cho đến khi kết thúc. Tôi hy vọng rằng bài viết này đã giúp bạn hiểu những kiến ​​thức cơ bản về MongoDB và cách bạn có thể sử dụng nó trong Javascript

Nếu bạn thấy điều này hữu ích, vui lòng xem xét giới thiệu và chia sẻ nó với các nhà phát triển đồng nghiệp khác. Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy cho tôi biết bằng cách sử dụng biểu mẫu liên hệ của tôi hoặc liên hệ với tôi trên twitter

Làm cách nào để kết nối MongoDB trong JavaScript?

js cho MongoDB, chúng ta phải sử dụng thư viện có tên là Mongoose . cầy mangut. kết nối ["mongodb. //máy chủ cục bộ. 27017/collectionName", { useNewUrlParser. đúng, sử dụngUnifiedTopology. ĐÚNG VẬY }]; .

JavaScript có thể truy cập MongoDB không?

js Driver cho phép bạn dễ dàng tương tác với cơ sở dữ liệu MongoDB từ bên trong Node. ứng dụng js . Bạn sẽ cần trình điều khiển để kết nối với cơ sở dữ liệu của mình và thực hiện các truy vấn được mô tả trong loạt bài Bắt đầu nhanh này.

Làm cách nào để kết nối với MongoDB cục bộ trong nút JS?

Kết nối MongoDB . var MongoClient = yêu cầu['mongodb']. MongoClient; . kết nối ["mongodb. //máy chủ cục bộ. 27017/MyDb", function [err, db] { if[err] throw err; // Viết cơ sở dữ liệu Chèn/Cập nhật/Mã truy vấn tại đây. }];

Làm cách nào để kết nối MongoDB với HTML?

Bạn phải làm theo các bước dưới đây để hiển thị dữ liệu MongoDB trên trang HTML. .
Tạo ứng dụng Node Express js
Cài đặt phụ thuộc cầy mangut flash ejs body-parser
Kết nối ứng dụng với MongoDB
Tạo mô hình
Tạo tuyến đường
Tạo bảng HTML và danh sách hiển thị
Nhập mô-đun trong ứng dụng. js
Khởi động máy chủ ứng dụng

Chủ Đề