Hướng dẫn can i use mongoose and mongodb together? - tôi có thể sử dụng mongoose và mongodb cùng nhau không?
Vâng, bạn nên, đó là một thực hành tốt. Show
Mongoose yêu cầu kết nối với cơ sở dữ liệu MongoDB. Bạn có thể sử dụng Yêu cầu () và kết nối với cơ sở dữ liệu được lưu trữ cục bộ với Mongoose.connect ().
Nếu bạn cần tạo các kết nối bổ sung, bạn có thể sử dụng Mongoose.CreateConnection (). Điều này có cùng một dạng URI cơ sở dữ liệu (với máy chủ, cơ sở dữ liệu, cổng, tùy chọn, v.v.) là Connect () và trả về một đối tượng kết nối) Trong bài viết này, chúng tôi sẽ tìm hiểu làm thế nào Mongoose, một thư viện của bên thứ ba cho MongoDB, có thể giúp bạn cấu trúc và truy cập dữ liệu của bạn một cách dễ dàng. Mongoose là gì?Mongoose là một thư viện ODM (mô hình dữ liệu đối tượng) cho MongoDB. Mặc dù bạn không cần sử dụng công cụ mô hình hóa dữ liệu đối tượng (ODM) hoặc ánh xạ quan hệ đối tượng (ORM) để có trải nghiệm tuyệt vời với MongoDB, một số nhà phát triển thích chúng. Nhiều nhà phát triển Node.js chọn làm việc với Mongoose để giúp mô hình hóa dữ liệu, thực thi lược đồ, xác thực mô hình và thao tác dữ liệu chung. Và Mongoose làm cho những nhiệm vụ này dễ dàng. Nếu bạn muốn nghe từ người bảo trì của Mongoose, Val Karpov, hãy nghe tập này của The MongoDB Podcast A!MongoDB Podcast a listen! Tại sao Mongoose?Theo mặc định, MongoDB có mô hình dữ liệu linh hoạt. Điều này làm cho cơ sở dữ liệu MongoDB rất dễ thay đổi và cập nhật trong tương lai. Nhưng rất nhiều nhà phát triển đã quen với việc có các lược đồ cứng nhắc. Mongoose buộc một lược đồ bán cứng ngay từ đầu. Với Mongoose, các nhà phát triển phải xác định lược đồ và mô hình. Lược đồ là gì?Một lược đồ xác định cấu trúc của các tài liệu thu thập của bạn. Một lược đồ Mongoose ánh xạ trực tiếp vào một bộ sưu tập MongoDB. Với các lược đồ, chúng tôi xác định từng trường và loại dữ liệu của nó. Các loại được phép là: Một mô hình là gì?Các mô hình lấy lược đồ của bạn và áp dụng nó vào từng tài liệu trong bộ sưu tập của nó. Các mô hình chịu trách nhiệm cho tất cả các tương tác tài liệu như tạo, đọc, cập nhật và xóa (CRUD). Một lưu ý quan trọng: Đối số đầu tiên được chuyển cho mô hình phải là hình thức số ít của tên bộ sưu tập của bạn. Mongoose tự động thay đổi điều này thành dạng số nhiều, biến nó thành chữ thường và sử dụng nó cho tên thu thập cơ sở dữ liệu. Trong ví dụ này, Thiết lập môi trườngHãy để thiết lập môi trường của chúng tôi. Tôi sẽ giả sử bạn đã cài đặt Node.js.Node.js installed already. Chúng tôi sẽ chạy các lệnh sau từ thiết bị đầu cuối để đi: Điều này sẽ tạo thư mục dự án, khởi tạo, cài đặt các gói chúng tôi cần và mở dự án trong mã VS. Hãy để thêm một tập lệnh vào tệp Kết nối với MongoDBBây giờ chúng tôi sẽ tạo tệp Bạn có thể kết nối với một ví dụ MongoDB địa phương, nhưng đối với bài viết này, chúng tôi sẽ sử dụng cụm Atlas MongoDB miễn phí. Nếu bạn không có tài khoản, thật dễ dàng để đăng ký một cụm Atlas MongoDB miễn phí tại đây.free MongoDB Atlas cluster here. Sau khi tạo cụm của bạn, bạn nên thay thế chuỗi kết nối ở trên bằng chuỗi kết nối của bạn bao gồm tên người dùng và mật khẩu của bạn. Chuỗi kết nối mà bạn sao chép từ bảng điều khiển Atlas MongoDB sẽ tham chiếu cơ sở dữ liệu Tạo một lược đồ và mô hìnhTrước khi chúng tôi làm bất cứ điều gì với kết nối của mình, chúng tôi sẽ cần tạo một lược đồ và mô hình. Lý tưởng nhất, bạn sẽ tạo một tệp lược đồ/mô hình cho mỗi lược đồ cần thiết. Vì vậy, chúng tôi sẽ tạo một thư mục/cấu trúc tệp mới: Chèn dữ liệu // Phương pháp 1Bây giờ chúng tôi đã thiết lập mô hình và lược đồ đầu tiên của chúng tôi, chúng tôi có thể bắt đầu chèn dữ liệu vào cơ sở dữ liệu của chúng tôi. Quay trở lại trong tệp Trước tiên chúng ta cần nhập mô hình 2 method to insert it into our MongoDB database.Hãy để thêm một chút sau đó để ghi lại những gì hiện đang có trong cơ sở dữ liệu. Chúng tôi sẽ sử dụng phương pháp 3 method for this.Bạn sẽ thấy tài liệu được chèn đăng nhập vào thiết bị đầu cuối của bạn. Bởi vì chúng tôi đang sử dụng 4 in this project, every time you save a file, the code will run again. If you want to insert a bunch of articles, just keep saving. 😄Chèn dữ liệu // Phương pháp 2Trong ví dụ trước, chúng tôi đã sử dụng phương pháp Mongoose 2 Mongoose method to insert the document into our database. This
requires two actions: instantiating the object, and then saving it.Ngoài ra, chúng ta có thể thực hiện điều này trong một hành động bằng phương pháp Mongoose 6 method.Phương pháp này tốt hơn nhiều! Chúng tôi không chỉ có thể chèn tài liệu của mình, mà chúng tôi còn được trả lại tài liệu cùng với 7 when we console log it.Cập nhật dữ liệuMongoose làm cho việc cập nhật dữ liệu cũng rất thuận tiện. Mở rộng trên ví dụ trước, hãy để thay đổi 8 of our article.Chúng tôi có thể chỉnh sửa trực tiếp đối tượng cục bộ và sau đó sử dụng phương thức 2 method to write the update back to the database. I don’t think it can get much easier than that!Tìm dữ liệuHãy để đảm bảo rằng chúng tôi đang cập nhật tài liệu chính xác. Chúng tôi sẽ sử dụng một phương pháp Mongoose đặc biệt, Lưu ý rằng chúng tôi sử dụng chức năng Mongoose Các trường tài liệu chiếuGiống như với trình điều khiển Tiêu chuẩn MongoDB Node.js, chúng ta chỉ có thể chiếu các trường mà chúng ta cần. Hãy để chỉ có được các trường 8, Blog 3, and Blog 4 fields.Tham số thứ hai có thể là loại Xóa dữ liệuGiống như trong trình điều khiển Tiêu chuẩn MongoDB Node.js, chúng tôi có các phương thức Thẩm địnhLưu ý rằng các tài liệu chúng tôi đã chèn cho đến nay vẫn chưa chứa Hãy để đặt một số trường bắt buộc trong lược đồ Khi bao gồm xác thực trên một trường, chúng tôi truyền một đối tượng là giá trị của nó.
Có một số phương pháp xác nhận có thể được sử dụng. Chúng tôi có thể đặt Đối với Đối với ngày Trình xác nhận chỉ chạy trên các phương thức tạo hoặc lưu. Các phương pháp hữu ích khácMongoose sử dụng nhiều phương pháp MongoDB tiêu chuẩn cộng với giới thiệu nhiều phương pháp trợ giúp bổ sung được trừu tượng hóa từ các phương pháp MongoDB thông thường. Tiếp theo, chúng tôi sẽ đi qua chỉ một vài trong số họ. Phương thức Mongoose cũng có phong cách truy vấn riêng. Phương pháp Một trong những phương pháp này hoạt động. Sử dụng bất cứ điều gì có vẻ tự nhiên hơn đối với bạn. Bạn cũng có thể chuỗi nhiều phương thức Để bao gồm phép chiếu khi sử dụng phương thức Nhiều lược đồĐiều quan trọng là phải hiểu các lựa chọn của bạn khi mô hình hóa dữ liệu. Nếu bạn đến từ một nền tảng cơ sở dữ liệu quan hệ, bạn sẽ được sử dụng để có các bảng riêng cho tất cả các dữ liệu liên quan của bạn. Nói chung, trong MongoDB, dữ liệu được truy cập cùng nhau nên được lưu trữ cùng nhau. Bạn nên lập kế hoạch điều này trước thời hạn nếu có thể. Dữ liệu tổ trong cùng một lược đồ khi nó có ý nghĩa. Nếu bạn có nhu cầu về các lược đồ riêng biệt, Mongoose làm cho nó trở nên dễ dàng. Hãy để tạo ra một lược đồ khác để chúng ta có thể thấy nhiều lược đồ có thể được sử dụng cùng nhau như thế nào. Chúng tôi sẽ tạo một tệp mới, Đối với Bây giờ chúng tôi sẽ tham khảo mô hình người dùng mới này trong lược đồ blog của chúng tôi cho Ở đây, chúng tôi đặt Điều này sẽ cho phép chúng tôi tham gia vào dữ liệu của chúng tôi một chút sau đó. Và don không quên phá hủy Cuối cùng, hãy để cập nhật tệp 7.
Lưu ý rằng có một bộ sưu tập Bây giờ bạn chỉ thấy người dùng 7 in the author field. So, how do we get all of the info for the
author along with the article?Chúng ta có thể sử dụng phương pháp Bây giờ dữ liệu cho Phần mềm trung gianTrong Mongoose, phần mềm trung gian là các chức năng chạy trước và/hoặc trong quá trình thực hiện các hàm không đồng bộ ở cấp độ lược đồ. Đây là một ví dụ. Hãy để cập nhật ngày Sau đó, trong tệp Lưu ý rằng bây giờ chúng tôi có một ngày Bên cạnh Bước tiếp theoTôi nghĩ rằng ví dụ của chúng tôi ở đây có thể sử dụng một lược đồ khác cho Có nhiều phương pháp trợ giúp Mongoose tuyệt vời khác không được đề cập ở đây. Hãy chắc chắn kiểm tra các tài liệu chính thức cho các tài liệu tham khảo và nhiều ví dụ hơn.official documentation for references and more examples. Sự kết luậnTôi nghĩ thật tuyệt vời khi các nhà phát triển có nhiều lựa chọn để kết nối và thao tác dữ liệu trong MongoDB. Cho dù bạn thích Mongoose hay Trình điều khiển MongoDB tiêu chuẩn, cuối cùng, đó là tất cả về dữ liệu và những gì tốt nhất cho ứng dụng và trường hợp sử dụng của bạn. Tôi có thể thấy lý do tại sao Mongoose hấp dẫn nhiều nhà phát triển và tôi nghĩ rằng tôi sẽ sử dụng nó nhiều hơn trong tương lai. Tôi có cần sử dụng Mongoose với MongoDB không?Mongoose là lớp mô hình tài liệu đối tượng (ODM) nằm trên đầu trình điều khiển MongoDB của nút. Nếu bạn đến từ SQL, nó tương tự như ORM cho cơ sở dữ liệu quan hệ. Mặc dù không bắt buộc phải sử dụng Mongoose với Mongo, nhưng đây là bốn lý do tại sao sử dụng Mongoose với MongoDB nói chung là một ý tưởng tốt.it's not required to use Mongoose with the Mongo, here are four reasons why using Mongoose with MongoDB is generally a good idea.
Làm thế nào để chúng tôi kết nối Mongoose với cơ sở dữ liệu MongoDB của chúng tôi?Bạn có thể kết nối với MongoDB với phương thức Mongoose.connect ().Mongoose.Connect ('MongoDB: // Localhost: 27017/MyApp');Đây là mức tối thiểu cần thiết để kết nối cơ sở dữ liệu MyApp chạy cục bộ trên cổng mặc định (27017).Nếu kết nối không thành công trên máy của bạn, hãy thử sử dụng 127.0.0.1 thay vì localhost.mongoose.connect() method. mongoose.connect('mongodb://localhost:27017/myapp'); This is the minimum needed to connect the myapp database running locally on the default port (27017). If connecting fails on your machine, try using 127.0.0.1 instead of localhost .
Tốt hơn là sử dụng Mongoose hoặc MongoDB?Mặt khác, việc học Mongoose có thể mất một thời gian và có một số hạn chế trong các lược đồ xử lý khá phức tạp.Tuy nhiên, nếu lược đồ bộ sưu tập của bạn là không thể đoán trước, hoặc bạn muốn có một vỏ Mongo như trải nghiệm bên trong Node.js, thì hãy tiếp tục và sử dụng trình điều khiển MongoDB.Đó là đơn giản nhất để chọn.if your collection schema is unpredictable, or you want a Mongo-shell like experience inside Node. js, then go ahead and use the mongodb driver. It is the simplest to pick up.
Mongoose có phải là một phần của MongoDB không?Mongoose là thư viện mô hình dữ liệu đối tượng dựa trên Node.js (ODM) cho MongoDB.Nó giống như một bản đồ quan hệ đối tượng (ORM) như SQLalchemy cho cơ sở dữ liệu SQL truyền thống. js-based Object Data Modeling (ODM) library for MongoDB. It is akin to an Object Relational Mapper (ORM) such as SQLAlchemy for traditional SQL databases. |