Hướng dẫn do we need to install mongodb to use mongoose? - chúng ta có cần cài đặt mongodb để sử dụng mongoose không?

Đây có thể là một câu hỏi ngu ngốc nhưng bạn có cần phải cài đặt MongoDB tại địa phương để Mongoose hoạt động trong nút không? Cơ sở dữ liệu của tôi được lưu trữ trên một máy chủ khác (MLAB) so với ứng dụng web của tôi nên tôi không chắc chắn.

Tài liệu cho biết lần đầu tiên cài đặt MongoDB và Node nhưng nó chỉ được sử dụng cho mục đích thử nghiệm theo như tôi thấy và tôi đã gặp một số vấn đề nên muốn đảm bảo rằng đó không phải là lý do.

Có ý nghĩa bây giờ mặc dù!

Hỏi ngày 11 tháng 8 năm 2017 lúc 23:00Aug 11, 2017 at 23:00

Hướng dẫn do we need to install mongodb to use mongoose? - chúng ta có cần cài đặt mongodb để sử dụng mongoose không?

7

Tôi hiểu sự nhầm lẫn là dòng đầu tiên trong hướng dẫn cài đặt cho Mongoose nói:

Đầu tiên cài đặt Node.js và MongoDB. Sau đó:

    $ npm install mongoose

Vì vậy, thật công bằng khi ngụ ý bạn cần cài đặt nó.

Tuy nhiên, do Mongoose kết thúc trình điều khiển gốc MongoDB và điều đó không yêu cầu cài đặt MongoDB, tôi hy vọng rằng bạn không cần phải cài đặt nó khi không sử dụng localhost.

Điều đó nói rằng, theo tôi, dù sao cũng đáng để cài đặt vì rất có thể bạn sẽ muốn sử dụng shell để truy cập các phiên bản của bạn cho các mục đích cấu hình, thao tác dữ liệu hoặc thử nghiệm khác.

Đã trả lời ngày 11 tháng 8 năm 2017 lúc 23:50Aug 11, 2017 at 23:50

AnthropicanthropicAnthropic

6611 Huy hiệu vàng11 Huy hiệu bạc29 Huy hiệu đồng1 gold badge11 silver badges29 bronze badges

1

Như bạn có thể thấy tại trang web chính thức: "Trước tiên hãy chắc chắn rằng bạn đã cài đặt MongoDB và Node.js."

Đã trả lời ngày 18 tháng 7 năm 2018 lúc 12:39Jul 18, 2018 at 12:39

2

Sử dụng Mongoose với Node.js để làm cho mọi thứ dễ dàng hơn cho MongoDB

Trước hết, bạn nên cài đặt MongoDB và có thể chạy nó trước khi cài đặt Mongoose. Bạn có thể đọc bài viết này để xem làm thế nào để làm điều đó trên Mac.MongoDB and be able to run it before you install mongoose. You can read this article to see how to do that on Mac.

Để cài đặt Mongoose, chúng tôi sẽ sử dụng lệnh NPM trong thư mục dự án. Nhưng trước tiên, bạn nên đi đến thư mục dự án có liên quan trong dòng lệnh.npm command in the project folder. But first, you should go to the relevant project folder in command line.

Gợi ý: Bạn có thể sử dụng lệnh CD để thay đổi thư mục trong dòng lệnh. (Vd: CD Desktop)cd command to change directories in command line. (ex: cd Desktop)

  1. Cài đặt Mongoose với NPM
npm i mongoose

Khi đã hoàn thành, chúng ta có thể đi đến bước tiếp theo đòi hỏi Mongoose trong dự án của chúng tôi. Cho dù bạn sử dụng Atom, VSCode hoặc bất kỳ IDE nào khác, hãy truy cập tệp JavaScript thực tế thường được gọi là app.js. Sau đó chỉ định hằng số mong muốn với yêu cầu.

2. Yêu cầu Mongoose trong App.js

const mongoose = require("mongoose");

Sau đó, chúng ta nên kết nối Mongoose với MongoDB.

3. Kết nối với MongoDB

mongoose.connect("mongodb://localhost:27017/dogsDB");

URL là mặc định cho đến khi chém cuối cùng. Sau đó, bạn nên đặt tên cơ sở dữ liệu của bạn. Dogsdb là tên của cơ sở dữ liệu trong ví dụ này. Ngay cả khi bạn chưa có một người nào, nó sẽ tạo ra một cơ sở dữ liệu mới.dogsDB is the name of the database in this example. Even if you haven’t one yet, it will create a new database.

Cố gắng chạy mã của bạn trong dòng lệnh (Ex: Node App.js). Nếu bạn nhận được bất kỳ cảnh báo bảo vệ nào, bạn có thể chuyển đề xuất dưới dạng tham số để kết nối chức năng.

4. Xử lý các cảnh báo từ chối

mongoose.connect("mongodb://localhost:27017/dogsDB", {useNewUrlParser: true});

Trước khi chèn bất kỳ tài liệu nào vào cơ sở dữ liệu, trước tiên chúng ta nên tạo một lược đồ giải thích cấu trúc của các tài liệu cho hệ thống. Một lược đồ nên trông như thế này.schema which explains the structure of the documents to the system. A schema should look like this.

5. Tạo lược đồ

const dogSchema = new mongoose.Schema({
name: String,
age: Number,
breed: String
});

Bây giờ chúng ta có một lược đồ, chúng ta có thể tạo ra một bộ sưu tập. Lược đồ này sẽ là bản thiết kế của các tài liệu vào bộ sưu tập đó. Chúng tôi sẽ sử dụng phương thức Mongoose.model () để tạo bộ sưu tập chó.mongoose.model( ) method in order to create the dogs collection.

6. Tạo bộ sưu tập

const Dog = mongoose.model("Dog", dogSchema);

Có một số điểm bạn nên lưu ý trong dòng mã trên.

Đầu tiên, chúng tôi đã chuyển 2 tham số vào hàm. Đầu tiên tuyên bố tên của bộ sưu tập. Mongoose tự động chuyển đổi tham số đầu tiên thành dạng số nhiều để đặt tên thu thập. Vì vậy, tên colllection là những con chó của người Hồi giáo trong trường hợp này.lowercased plural form to set the collection name. So, the colllection name is “dogs” in this case.

Tham số thứ hai là lược đồ của các tài liệu mà chúng tôi muốn sử dụng cho bộ sưu tập mới của chúng tôi. Bằng cách vượt qua Dogschema, chúng tôi tuyên bố rằng, mọi tài liệu trong bộ sưu tập chó đều là loại chó săn. Mọi thứ sẽ trở nên rõ ràng hơn khi chúng ta tạo một tài liệu mới ngay bên dưới.dogSchema we declare that, every document in dogs collection are type of dogSchema. Things will get more clear when we create a new document just below.

7. Tạo một tài liệu mới

const dog = new Dog({
name: "Rex",
age: 1,
breed: "Golden Retriever"
});

Được rồi, mọi thứ đã sẵn sàng. Chỉ còn điều còn lại là lưu đối tượng chó mới vào bộ sưu tập và đó là bước dễ nhất.

8. Lưu tài liệu

dog.save();

Hãy cẩn thận với dòng mã này. Nếu bạn gọi nó công khai bên trong tệp app.js của bạn, mỗi khi bạn chạy tệp của mình, dòng này sẽ lưu một mục khác vào cơ sở dữ liệu. Đó là một ý tưởng tốt để nhận xét dòng đó sau khi chạy nó lần đầu tiên. Bạn cũng có thể sử dụng một câu lệnh IF nếu bạn muốn một giải pháp vĩnh viễn. If you call it publicly inside your app.js file, every time you run your file, this line saves another item into the database. It’s a good idea to comment out that line after running it for the first time. You can also use an if statement if you want a permanent solution.

Bạn luôn có thể kiểm tra tình huống của cơ sở dữ liệu để quyết định xem bạn có hoàn thành các bước này thành công hay không. Vì thế. Hãy để điều đó làm điều đó.

9. Kiểm tra DB

#go to the command line
#be sure mongoDB is running
mongo
#now we are in mongo shell
>show dbs
#there must be dogsDB in the list
>use dogsDB
# switched to the dogsDB
>show collecitons
# we should see dogs collection here
>db.dogs.find()
# now we should see the documents in dogs collection, we have one:
# {name: "Rex", age: 1, breed: "Golden Retriever"}

10. chènmany () trong Mongoose

npm i mongoose
0

Sau đó, bạn đã tạo bộ sưu tập, bất cứ khi nào bạn muốn chèn nhiều mục vào đó, bạn có thể gọi chức năng InsertMany (). Lưu ý rằng Dog1, Dog2 và Dog3 là đối tượng chó và cho rằng chúng được tạo ra với các quy tắc của chó con. Vì vậy, có, chúng ta có thể vượt qua một mảng dưới dạng tham số trong insertMany ().

Cho đến bây giờ, chúng tôi đã sử dụng phương thức Find () trong Mongo Shell để truy xuất các tài liệu. Điều gì sẽ xảy ra nếu chúng ta muốn có chúng trong mã của chúng ta? Giả sử chúng ta cần lọc một số tài liệu, chơi với chúng và cập nhật chúng. Để đạt được điều này, chúng ta cũng có thể sử dụng phương thức find () trong app.js. Cú pháp sẽ khác một chút so với lần trước. Kiểm tra bên dưới.

11. Tìm trong Mongoose

npm i mongoose
1

Là một tham số đầu tiên, bạn có thể lọc các tài liệu với các toán tử truy vấn. Tham số thứ hai là hàm gọi lại cung cấp cho bạn lỗi nếu có hoặc cung cấp cho bạn danh sách kết quả. Vì vậy, Foundlist là kết quả của hoạt động tìm kiếm. Vì đây là một chức năng tìm thấy tất cả, kết quả sẽ là một loạt các mục phù hợp với truy vấn. Nếu chúng ta để trống dấu ngoặc xoăn ({}) như nó là, nó sẽ trả lại tất cả các tài liệu. Sau đó, bạn có thể chơi với FoundList trong tệp JS của bạn.foundList is the result of the find operation. Since this is a find all function, the result will be an array of items that matches the query. If we left the curly brackets({}) blank as it is, it will return all of the documents. Then, you can play with foundList inside your js file.

12. Xác nhận trong Mongoose

npm i mongoose
2

Nếu bạn muốn hạn chế các trường của các tài liệu như ví dụ trên, bạn có thể làm điều đó bằng cách chỉ định nó vào lược đồ. Bằng cách thiết lập thuộc tính yêu cầu là đúng, chúng tôi không còn cho phép chó không có tên. Chúng tôi có thể cụ thể hơn. Ví dụ, chúng tôi có thể đặt một giá trị tối đa và tối đa cho thuộc tính tuổi. we no longer allow dogs without a name. We could be more specific. For instance we could put a min and max value for age attribute.

13. Xác thực Min-Max

npm i mongoose
3

Hãy để tiếp tục với các hoạt động cập nhật. Chúng tôi sẽ xem phương thức UpdateDe () cho sự đơn giản, bạn cũng có thể sử dụng updateMany ().

Bây giờ, hãy nhớ rằng khi chúng tôi tạo ra những con chó săn, chúng tôi đã không cung cấp bất kỳ ID nào cho các tài liệu. Trong trường hợp này, tham số _ID được tạo tự động bởi Mongoose. Chuyển đến dòng lệnh và chạy phương thức db.dogs.find (). Bạn sẽ là một ID mặc định bên cạnh các tài liệu, một cái gì đó như thế này: 5F9C2D128F5033D1B0E7861C. Chúng tôi sẽ sử dụng ID này để đạt được một tài liệu duy nhất. db.dogs.find( ) method. You will se a default id next to documents, something like this: “5f9c2d128f5033d1b0e7861c”. We will use this id to reach a unique document.

14. UpdateDe () Phương thức:

npm i mongoose
4
  • Tham số đầu tiên: Đây là truy vấn, chúng tôi đang chuyển một ID chính xác để có được tài liệu đó.
  • Tham số thứ hai: Trường chúng tôi muốn cập nhật, trong trường hợp này, chúng tôi đang cập nhật tuổi của con chó từ 1 đến 2.
  • Tham số thứ ba: Đây là chức năng gọi lại của trình bắt lỗi, bạn có thể console ghi nhật ký lỗi nếu bạn muốn.

15. Phương thức DeleteOne ():

npm i mongoose
5
  • Tham số đầu tiên: Đây là truy vấn, chúng tôi đang chọn tài liệu chúng tôi muốn xóa
  • Tham số thứ hai: Hàm gọi lại mặc định như trên.

Lưu ý: Sử dụng deletemany () theo cùng một cách để xóa nhiều tài liệu.

16. Xóa tất cả

npm i mongoose
6
  • Mã này sẽ xóa tất cả các tài liệu trong bộ sưu tập chó vì phần truy vấn trống.

Thiết lập mối quan hệ trong Mongoose

Bạn nên chỉ định các mối quan hệ trong lược đồ trước khi bạn tạo các đối tượng. Dưới đây, bạn có thể thấy ví dụ mã của 2 lược đồ khác nhau với mối quan hệ.

npm i mongoose
7

Hãy để giả sử ai đó trong cơ sở dữ liệu của chúng tôi từng không có xe hơi nhưng đã mua một chiếc mới. Chúng ta nên cập nhật lĩnh vực xe hơi của người đó trong cơ sở dữ liệu của chúng tôi.

Nếu bạn muốn tạo mối quan hệ với tài liệu đã có: Sử dụng chức năng cập nhật.

npm i mongoose
8
  • Beth đã ở trong cơ sở dữ liệu nhưng cô ấy không có xe hơi. Bây giờ cô ấy có.

Mongoose có yêu cầu MongoDB không?

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.. While you don't need to use an Object Data Modeling (ODM) or Object Relational Mapping (ORM) tool to have a great experience with MongoDB, some developers prefer them.

Tôi có thể sử dụng Mongoose và MongoDB cùng nhau không?

MongoDB là một trong những cơ sở dữ liệu NO-SQL được sử dụng rộng rãi nhất trong thế giới nhà phát triển hiện nay.Cơ sở dữ liệu NO-SQL cho phép các nhà phát triển gửi và truy xuất dữ liệu dưới dạng tài liệu JSON, thay vì các đối tượng SQL.Để làm việc với MongoDB trong ứng dụng Node.js, chúng ta có thể sử dụng Mongoose.To work with MongoDB in a Node. js app, we can use Mongoose.

Làm thế nào để Mongoose kết nối với MongoDB?

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 .

Có bắt buộc phải sử dụng Mongoose với ứng dụng nút không?

Không bắt buộc phải sử dụng Mongoose trên API gốc MongoDB.Tuy nhiên, có một số lợi ích để làm như vậy.. However, there are some benefits to doing so.