Trình điều khiển mongodb nodejs là gì?

Có nhiều cách để tương tác với MongoDB, và hai trong số đó là với mongo shell và MongoDB Node. trình điều khiển js. Bây giờ tại thời điểm này, có thể hợp lý khi hỏi cách tiếp cận nào là tốt nhất. Vâng, câu trả lời thực sự phụ thuộc vào kịch bản. Vì vậy, có lẽ câu hỏi đầu tiên nên là. “Tôi cần phải làm gì?” . Trong bài viết này, tôi sẽ chứng minh sự khác biệt giữa mongo shell và MongoDB Node. js khi thực hiện các thao tác CRUD cơ bản. Hy vọng của tôi là điều này sẽ giúp bạn quyết định cách tiếp cận nào phù hợp nhất với những gì bạn cần làm

Shell mongo là một giao diện JavaScript tương tác với MongoD và nó là một thành phần của gói MongoDB. Shell mongo có thể được sử dụng để thực hiện các thao tác CRUD trên dữ liệu, cũng như các thao tác quản trị. Nói cách khác, hãy nghĩ về mongo shell như một cách để tương tác với cơ sở dữ liệu MongoDB mà không cần phải xây dựng hoặc tương tác với một ứng dụng

Nút MongoDB. js cung cấp một cách để tương tác với cơ sở dữ liệu MongoDB từ mã ứng dụng Node của bạn. Nó hỗ trợ cả tương tác dựa trên gọi lại và dựa trên Promise với cơ sở dữ liệu mongo của bạn. Điều này sẽ trái ngược với vỏ mongo, được sử dụng trong Nút của bạn. mã ứng dụng js

Chèn một tài liệu vào cơ sở dữ liệu

Chèn một tài liệu bằng Mongo Shell – Ví dụ # 1A

Chèn một tài liệu bằng nút MongoDB. Trình điều khiển JS - Ví dụ # 1B

Với shell mongo, chúng ta cần chỉ định cơ sở dữ liệu nào chúng ta muốn sử dụng. Chúng tôi làm điều này bằng cách sử dụng lệnh "sử dụng". Cú pháp là. "sử dụng DATABASE_NAME". Vì vậy, trong Ví dụ # 1A, chúng tôi hoàn thành hai việc; . e. “use madMen”], sau đó chúng tôi chèn một tài liệu vào bộ sưu tập tên. Trên thực tế, bước thứ ba đã được thực hiện ở đây, mặc dù bạn có thể không nhận thấy vì nó không rõ ràng; . e. , bộ sưu tập tên đã được tạo. Với mongo shell, nếu chúng ta tham chiếu đến một bộ sưu tập chưa tồn tại khi sử dụng lệnh chèn, thì bộ sưu tập đó sẽ được tạo. Lưu ý rằng khi chúng tôi chèn tài liệu, chúng tôi đã chuyển một đối tượng cho phương thức chèn. Đối tượng này có thể có một hoặc nhiều cặp khóa/giá trị. Trong trường hợp này, chúng tôi đã cung cấp một cặp khóa/giá trị

Bạn sẽ nhận thấy rằng trong Ví dụ # 1B, tất cả các Nút MongoDB sau đây. Ví dụ về Trình điều khiển JS, có nhiều mã hơn. Lý do cho điều này là đây là mã ứng dụng, vì vậy cần có một số bước thiết lập để cung cấp các phụ thuộc cho ứng dụng của chúng ta và cho nó biết chúng ta muốn làm gì. Với mongo Shell, có ngữ cảnh. Điều đó có nghĩa là, mongo Shell hiểu rằng bạn sẽ làm việc để thực hiện các tác vụ dành riêng cho MongoDB, do đó không cần cung cấp các phụ thuộc hoặc giải thích nhiều

Bây giờ ở đây trong Ví dụ # 1B, chúng ta hoàn thành các tác vụ tương tự bằng cách sử dụng Nút MongoDB. Trình điều khiển JS. Năm dòng mã đầu tiên cung cấp các phụ thuộc và một số thông tin cấu hình. Và ở dòng #8, chúng ta thiết lập kết nối đến cơ sở dữ liệu madMen bằng mongoDbClient. phương thức kết nối[]. Phương thức này nhận một cuộc gọi lại và bên trong cuộc gọi lại, chúng tôi đặt các tham chiếu đến cơ sở dữ liệu madMen và bộ sưu tập tên. Sau đó, chúng tôi sử dụng phương thức chèn của bộ sưu tập tên để chèn một tài liệu. Chúng tôi cũng thêm một số giao diện điều khiển. log[], chỉ để cung cấp một số thông báo hữu ích để chúng ta có thể thấy rằng thao tác đã thành công. Càng xa càng tốt

Chèn nhiều tài liệu vào cơ sở dữ liệu

Chèn nhiều tài liệu bằng Mongo Shell – Ví dụ # 2A

Chèn nhiều tài liệu bằng nút MongoDB. Trình điều khiển JS - Ví dụ # 2B

Trong Ví dụ # 2A, chúng tôi chèn nhiều tài liệu vào cơ sở dữ liệu madMen bằng mongo Shell và chúng tôi thực hiện việc này theo hai cách. Đầu tiên, chúng tôi chèn từng tài liệu mới. Không cần vòng lặp for vì đây không phải là mã ứng dụng; . Sau đó, chúng tôi chèn ba tài liệu mới bằng cách sử dụng phương thức insertMany. Bây giờ, sự khác biệt giữa phương thức insert và insertMany là với phương thức insert, bạn truyền một đối tượng tài liệu làm đối số, trong khi với phương thức insertMany[], bạn cung cấp một mảng đối tượng tài liệu

Trong Ví dụ # 2B, chúng tôi chèn nhiều tài liệu vào cơ sở dữ liệu madMen, sử dụng Nút MongoDB. Trình điều khiển JS. Sự khác biệt giữa mã này và mã được tìm thấy trong Ví dụ # 2A là thay vì chỉ chuyển một mảng các đối tượng vào bộ sưu tập. insertMany[], chúng tôi cũng cung cấp một hàm gọi lại làm đối số thứ hai. Cuộc gọi lại là không bắt buộc, nhưng có khả năng bạn sẽ muốn cung cấp nó vì bộ sưu tập. phương thức insertMany[] không đồng bộ và bạn có thể sẽ muốn hành động khi chèn tài liệu thành công. Vì vậy, trong ví dụ này, chúng tôi đã hiển thị một vài giao diện điều khiển. log[] thông báo cho biết rằng việc chèn cơ sở dữ liệu đã thành công. Nhưng quan trọng hơn, chúng tôi đã gọi cơ sở dữ liệu. close[], như bạn có thể mong đợi, đã đóng cơ sở dữ liệu. Điều chính cần lưu ý về việc tận dụng bộ sưu tập. insertMany[] trong ứng dụng Node của bạn là nó là một hành động không đồng bộ, như thường thấy trong Node

Xem tất cả tài liệu trong cơ sở dữ liệu

Xem tất cả tài liệu với Mongo Shell – Ví dụ # 3A

Xem tất cả tài liệu với nút MongoDB. Trình điều khiển JS - Ví dụ # 3B

Trong ví dụ # 3A, chúng tôi sử dụng Shell mongo để xem tất cả các bản ghi trong cơ sở dữ liệu bằng cách thực hiện lệnh. db. tên. tìm thấy[]. Nếu chúng tôi đang thực thi một tệp tập lệnh trong trình bao, chúng tôi cần đặt tham chiếu cho tất cả các bản ghi, thiết lập một vòng lặp và sau đó trong mỗi lần lặp lại của vòng lặp, chúng tôi có thể xuất bản ghi hiện tại mà chúng tôi đang lặp lại. Nhưng vì mongo Shell cung cấp chức năng REPL, chúng ta có thể chỉ cần thực thi một biểu thức dẫn đến một giá trị đại diện cho mọi bản ghi trong cơ sở dữ liệu

Trong Ví dụ #3B, chúng tôi sử dụng Nút MongoDB. JS Driver để xem tất cả các bản ghi trong cơ sở dữ liệu và ở đây, chúng ta cần xắn tay áo lên vì chúng ta còn một số việc phải làm. Bây giờ một lần nữa, đây là vì đây là mã ứng dụng, vì vậy chúng tôi cần giải thích cho Node chính xác những gì chúng tôi muốn làm. Vì vậy, nếu bạn xem dòng # 11, bạn sẽ thấy rằng chúng tôi sử dụng phương thức find[] để lấy tham chiếu đến tất cả các bản ghi trong cơ sở dữ liệu. Sau đó, chúng tôi xâu chuỗi phương thức each[] với giá trị trả về của giá trị này, chuyển cho nó một hàm gọi lại. Trong cuộc gọi lại, đối số thứ hai là tài liệu hiện tại mà chúng tôi đang lặp lại, vì vậy chúng tôi ghi lại tài liệu đó. Nếu tài liệu hiện tại là null, thì chúng tôi đóng kết nối cơ sở dữ liệu

Xóa một tài liệu

Xóa một tài liệu bằng Mongo Shell – Ví dụ # 4A

Xóa một tài liệu bằng Nút MongoDB. Trình điều khiển JS - Ví dụ # 4B

Trong Ví dụ # 3A, chúng tôi sử dụng mongo Shell để xóa từng tài liệu một. Lưu ý rằng chúng tôi tham chiếu một tài liệu cụ thể bằng cách cung cấp khóa. “_id” và ID của tài liệu chúng tôi muốn xóa. Nhưng chúng tôi không cung cấp ID đơn giản dưới dạng một chuỗi; . Lý do cho điều này là MongoDB thích chức năng trình bao bọc chuyển đổi ID chuỗi đó thành một đối tượng

Trong Ví dụ #3B, chúng tôi sử dụng Nút MongoDB. Trình điều khiển JS để xóa một tài liệu khỏi cơ sở dữ liệu. Bây giờ, điểm khác biệt chính ở đây là chúng ta sử dụng phương thức deleteOne[], thay vì phương thức remove[]. Và tương tự như cách tiếp cận mongo Shell, chúng tôi cung cấp một đối tượng xác định duy nhất tài liệu mà chúng tôi muốn xóa. Hành động này trả về một lời hứa, vì vậy chúng ta có thể xâu chuỗi phương thức then[] với giá trị trả về của nó và bên trong hàm gọi lại, chúng ta đóng cơ sở dữ liệu [dòng # 19]

Xóa tất cả tài liệu

Xóa tất cả tài liệu bằng Mongo Shell – Ví dụ # 5A

Xóa tất cả tài liệu bằng nút MongoDB. Trình điều khiển JS - Ví dụ # 5B

Trong Ví dụ # 5A, chúng tôi sử dụng mongo Shell để xóa tất cả tài liệu khỏi cơ sở dữ liệu. Bây giờ đây là một nhiệm vụ khá đơn giản vì chúng ta đã cung cấp một đối tượng trống cho phương thức remove[]. Điều này cho MongoDB biết rằng chúng tôi muốn xóa tất cả tài liệu

Ví dụ #5B cũng hơi giống. Sử dụng nút MongoDB. JS, chúng tôi xóa tất cả tài liệu trong cơ sở dữ liệu bằng cách gọi phương thức deleteMany[] [trái ngược với phương thức “remove[]”]. Và theo cách tương tự, chúng tôi cung cấp một đối tượng trống báo hiệu cho MongoDB rằng chúng tôi muốn xóa tất cả tài liệu khỏi cơ sở dữ liệu. Một lần nữa, hành động này trả về một lời hứa, vì vậy chúng tôi xâu chuỗi phương thức then[], chuyển một cuộc gọi lại và bên trong cuộc gọi lại đó, chúng tôi đóng cơ sở dữ liệu

Tóm lược

Trong bài viết này, chúng ta đã thực hiện so sánh việc hoàn thành các thao tác CRUD cơ bản với cả mongo Shell và MongoDB Node. Trình điều khiển JS. Trong mỗi ví dụ, chúng tôi thấy rằng có sự khác biệt khá lớn trong cú pháp và trong một số trường hợp, tên phương thức. Lý do chính cho sự khác biệt là mongo Shell là một môi trường REPL; . e. , tất cả các hành động đều đồng bộ và trình bao hiểu rằng chúng tôi đang làm việc với cơ sở dữ liệu MongoDB. Nút MongoDB. Trình điều khiển JS thường yêu cầu nhiều công việc hơn, vì ứng dụng Node của chúng tôi là vanilla JavaScript và không nhất thiết phải được lưu trữ trong môi trường dành riêng cho MongoDB. Vì vậy, trong trường hợp này, chúng ta cần thiết lập kết nối cơ sở dữ liệu, đặt tham chiếu đến máy khách MongoDB và đặt tham chiếu đến cơ sở dữ liệu và bộ sưu tập

Bây giờ, cách tiếp cận nào hoạt động tốt nhất, nó thực sự phụ thuộc vào nhu cầu của bạn. Cả mongo Shell và MongoDB Node. Trình điều khiển JS cung cấp sức mạnh đáng kể cho công việc của bạn với cơ sở dữ liệu MongoDB của bạn. Sự khác biệt là mongo Shell là môi trường REPL dựa trên thiết bị đầu cuối và các lệnh sẽ có xu hướng đơn giản hơn. Mặt khác, Nút MongoDB. Trình điều khiển JS cung cấp cách tương tác với MongoDB từ Nút của bạn. mã js. Vì vậy, trong trường hợp này, bạn sẽ cần thực hiện một cách tiếp cận cấp thấp hơn và viết mã đảm nhiệm việc kết nối đến và từ cơ sở dữ liệu, cũng như logic nghiệp vụ của bạn. Nhưng mặc dù điều này thường đòi hỏi nhiều nỗ lực hơn, nhưng có một sức mạnh to lớn là bạn đang viết mã ứng dụng có thể có logic phức tạp và được thực thi lặp đi lặp lại.

MongoDB trong Nodejs là gì?

MongoDB là nền tảng dữ liệu định hướng tài liệu đa năng, hiện đại đã được ghép nối rộng rãi với Node. js trong các ngăn xếp công nghệ phổ biến như ngăn xếp MEAN [MongoDB, Express. js, AngularJS và Nút. js] và ngăn xếp MERN [MongoDB, Express. js, phản ứng.

Trình điều khiển nào hữu ích để kết nối Nodejs với MongoDB?

Kết nối nút của bạn. js sang MongoDB và làm việc với dữ liệu của bạn bằng cách sử dụng Node. trình điều khiển js . Trình điều khiển có API không đồng bộ mà bạn có thể sử dụng để truy cập các giá trị trả về của phương thức thông qua Lời hứa hoặc chỉ định các cuộc gọi lại để truy cập chúng khi giao tiếp với MongoDB.

Mongoose có phải là trình điều khiển MongoDB không?

Mongoose là thư viện Mô hình hóa dữ liệu đối tượng [ODM] cho MongoDB được phân phối dưới dạng gói npm . Chúng tôi sẽ so sánh và đối chiếu Mongoose với việc sử dụng Nút MongoDB gốc. js cùng với Xác thực lược đồ MongoDB.

Làm cách nào để sử dụng MongoDB với Nodejs?

Thiết lập .
Cài đặt nút. js. .
Cài đặt nút MongoDB. trình điều khiển js. .
Tạo cụm MongoDB Atlas miễn phí và tải dữ liệu mẫu. Tiếp theo, bạn sẽ cần một cơ sở dữ liệu MongoDB. .
Nhận thông tin kết nối của cụm của bạn. .
Nhập MongoClient. .
Tạo chức năng chính của chúng tôi. .
Liệt kê các cơ sở dữ liệu trong cụm của chúng tôi. .
Lưu tệp của bạn

Chủ Đề