/ / Cách sử dụng Mongoose trong các ứng dụng nhanh

Cách sử dụng Mongoose trong các ứng dụng nhanh

Mongo Database Transactions Cover

Quản lý dữ liệu trong cơ sở dữ liệu MongoDB có thể là một thách thức, đặc biệt là khi xử lý các mô hình dữ liệu phức tạp. MongoDB là một cơ sở dữ liệu không có lược đồ, nghĩa là dữ liệu có thể được thêm vào mà không cần tuân theo một cấu trúc cụ thể. Tính linh hoạt này khiến MongoDB trở nên lý tưởng để lưu trữ lượng lớn dữ liệu nhưng cũng khiến việc quản lý dữ liệu trở nên khó khăn hơn.


Mongoose cung cấp giải pháp dựa trên lược đồ giúp đảm bảo rằng dữ liệu được lưu vào MongoDB nhất quán và được định dạng chính xác. Với Mongoose, bạn có thể xác định một lược đồ cho các mô hình dữ liệu của mình, sơ đồ này chỉ định cấu trúc của dữ liệu và các quy tắc về cách định dạng dữ liệu đó. Tại đây, bạn sẽ khám phá cách sử dụng Mongoose trong ứng dụng Express.


Thiết lập môi trường phát triển của bạn

Trước khi sử dụng Mongoose, bạn phải cài đặt nó như một phần phụ thuộc trong dự án của mình.

Bạn có thể cài đặt Mongoose bằng cách chạy lệnh bên dưới:

 npm install mongoose

Sau khi bạn cài đặt Mongoose trong dự án của mình, bạn cần kết nối ứng dụng của mình với MongoDB bằng Mongoose.

Mongoose kết nối với Cơ sở dữ liệu MongoDB bằng cách sử dụng kết nối phương thức này lấy URI MongoDB làm đối số.

Đây là một ví dụ:

 
const mongoose = require("mongoose")

mongoose.connect("mongodb://127.0.0.1:27017/example", () =>
  console.log("Connected to database successfully")
);

Khối mã ở trên kết nối với một phiên bản MongoDB cục bộ và ghi lại thông báo thành công khi ứng dụng của bạn kết nối thành công với MongoDB.

Tạo một mô hình Mongoose

Mô hình Mongoose là một lớp dựa trên lược đồ trong Mongoose cho phép bạn tương tác với bộ sưu tập MongoDB.

Lược đồ Mongoose xác định cấu trúc của tài liệu mà bạn có thể lưu trữ trong bộ sưu tập MongoDB và cung cấp giao diện để tạo, đọc, cập nhật và xóa tài liệu trong bộ sưu tập đó.

Khi bạn xác định mô hình Mongoose, bạn xác định lược đồ cho các tài liệu trong bộ sưu tập đó, bao gồm các thuộc tính, loại của chúng và bất kỳ xác nhận hợp lệ nào.

Đây là một ví dụ về mô hình Mongoose cho một Người dùng bộ sưu tập:

 const mongoose = require("mongoose");

const userSchema = mongoose.Schema({
  name: {
    type: String,
    required: [true, "Name is required"],
  },
  email: {
    type: String,
    required: true,
  },
  age: {
    type: Number,
    validate: {
      validator: function (value) {
        return value > 0;
      },
      message: () => "Please enter a valid age",
    },
  },
});

const User = mongoose.model("User", userSchema);

module.exports = User;

Khối mã ở trên định nghĩa một lược đồ Mongoose với ba thuộc tính: tên, e-mailtuổi. Mỗi thuộc tính có một bộ quy tắc xác định mà bạn phải tuân theo khi ánh xạ một giá trị vào trường được chỉ định. Dưới đây là bảng phân tích các quy tắc:

  • tên: Các tên tài sản là một sợi dây loại được đánh dấu là yêu cầu, nghĩa là bạn phải ánh xạ một chuỗi tới trường này. Nếu bạn để trống trường hoặc nhập một loại dữ liệu JavaScript khác, Mongoose sẽ báo lỗi.
  • e-mail: Các e-mail tài sản là một sợi dây loại được đánh dấu là yêu cầu. Nó không có quy tắc xác thực nào khác, nhưng trên thực tế, bạn nên xác thực xem email có đúng không. Bạn có thể xác thực email bằng biểu thức regex hoặc thư viện của bên thứ ba, chẳng hạn như trình xác thực lớp.
  • tuổi: Các tuổi tài sản là một con số nhập bằng quy tắc xác thực tùy chỉnh để kiểm tra xem giá trị được ánh xạ tới trường có lớn hơn 0 không. Nếu giá trị không vượt qua xác thực, Mongoose sẽ báo lỗi với thông báo Vui lòng nhập độ tuổi hợp lệ. Bạn có thể để trống trường này vì nó không được đánh dấu là yêu cầu.

Sau khi xác định lược đồ, khối mã tạo một mô hình Mongoose được gọi là Người dùng sử dụng cầy mangut.model() phương pháp. Phương pháp này có hai đối số: tên của mô hình và lược đồ để sử dụng cho các tài liệu.

cuối cùng Người dùng mô hình được xuất sang các phần khác của ứng dụng của bạn.

Tương tác với MongoDB bằng Mongoose

Với ứng dụng của bạn được kết nối với cơ sở dữ liệu MongoDB và mô hình của bạn được tạo và có thể truy cập được vào các phần khác của ứng dụng, bạn có thể tương tác với cơ sở dữ liệu của mình bằng các phương thức do Mongoose cung cấp.

Đối với hướng dẫn này, bạn sẽ thực hiện các thao tác CRUD trên cơ sở dữ liệu MongoDB.

Ghi chú: Đảm bảo nhập mô hình Mongoose của bạn vào bất kỳ mô-đun nào mà bạn sẽ thực hiện các thao tác CRUD.

Ví dụ:

 

const User = require("./userModel")

Tạo tài liệu

Một tài liệu là một thể hiện của một mô hình. Có một số cách bạn có thể tạo và lưu tài liệu vào MongoDB bằng Mongoose.

Trước tiên, bạn có thể tạo một thể hiện của lớp mô hình của mình và sau đó gọi phương thức cứu phương pháp trên đó.

Ví dụ:

 
let user = new User({
  name,
  email,
  age,
});


user
  .save()
  .then(() => {
    console.log("User created successfully");
  })
  .catch((error) => {
    
  });

Khối mã ở trên tạo và lưu một mã mới Người dùng tài liệu vào cơ sở dữ liệu MongoDB của bạn.

Bạn cũng có thể lưu dữ liệu vào cơ sở dữ liệu của mình bằng cách sử dụng tạo nên phương pháp. Các tạo nên phương pháp khởi tạo mô hình của bạn và gọi cứu phương pháp trên đó. Nói cách khác, nó kết hợp hai hoạt động của kỹ thuật đã đề cập trước đó.

Ví dụ:

 User.create({ name, email, age }, (err, data) => {
    if (err) throw new Error("Internal Server Error");

    console.log(`User created successfully: ${data}`);
  });

Khối mã ở trên tạo một mã mới Người dùng tài liệu với các thuộc tính được truyền dưới dạng đối số cho tạo nên phương pháp.

Ngoài ra, bạn có thể lưu dữ liệu vào cơ sở dữ liệu của mình bằng cách sử dụng chènNhiều phương pháp. Mặc dù phương pháp này chỉ lý tưởng để lưu dữ liệu theo lô.

Ví dụ:

 User.insertMany(
    [
      { name, email, age },
      { name_1, email_1, age_1 },
    ],
    (err, result) => {
      if (err) {
        
      } else {
        
      }
    }
  );

Khối mã ở trên tạo ra hai tài liệu mới trong Người dùng bộ sưu tập bằng cách sử dụng mảng được truyền dưới dạng đối số cho chènNhiều phương pháp.

Đọc tài liệu

Bạn có thể truy cập tất cả các tài liệu đã lưu trong cơ sở dữ liệu MongoDB của mình bằng Mongoose’s tìm thấy phương pháp.

Ví dụ:

 User.find({})
  .then((data) => {
    console.log(data);
  })
  .catch((err) => {
    
  });

Khối mã ở trên sẽ trả về tất cả các tài liệu trong Người dùng bộ sưu tập.

Bạn cũng có thể tìm thấy tất cả các tài liệu phù hợp với một truy vấn cụ thể bằng cách chuyển truy vấn đến phương thức tìm.

Ví dụ:

 
User.find({ age: { $gte: 18 } })
  .then((data) => console.log(data))
  .catch((error) => console.log(error));

Khối mã ở trên sẽ trả về tất cả các tài liệu có giá trị tuổi lớn hơn 18 trong Người dùng bộ sưu tập.

Ngoài ra, bạn có thể đọc các bản ghi đơn lẻ bằng cách sử dụng findById và chuyển ID tài liệu làm đối số hoặc sử dụng tìm một phương thức và chuyển một bộ lọc làm đối số.

Ví dụ:

 
User.findById(id, (error, result) => {
    if (result) console.log(result);
    if (error) console.error(error)
  });


User.findOne({ email: "johnson@example.com" }).then((user) => {
    if (!user) {
      
    }
    
  });

Trong khối mã trên, findById phương thức trả về tài liệu có ID phù hợp. Các tìm một phương thức trả về tài liệu đầu tiên có email johnson@example.com.

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

Bạn có thể cập nhật tài liệu trên MongoDB bằng Mongoose bằng cách sử dụng findByIdAndUpdate phương pháp. Phương thức này lấy một ID và một đối tượng với các chi tiết được cập nhật.

Ví dụ:

 User.findByIdAndUpdate(id, req.body, (err, doc) => {
  if (doc) {
    
  }
  if (err) {
    
  }
});

Khối mã ở trên cập nhật tài liệu có ID khớp với ID được cung cấp với đối tượng cập nhật được cung cấp (req.body).

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

Bạn có thể xóa một tài liệu trên MongoDB bằng Mongoose bằng cách sử dụng findByIdAndDelete phương pháp. Phương thức này lấy một ID làm đối số và xóa tài liệu có ID tương ứng.

Ví dụ:

 User.findByIdAndDelete(id, (error, result) => {
  if (result) {
    
  }
  if (error) {
    
  }
});

Khối mã ở trên xóa tài liệu có ID đã cho khỏi cơ sở dữ liệu MongoDB của bạn.

Sử dụng Mongoose trong Ứng dụng Express của bạn

Bài viết này cung cấp tổng quan về cách bạn có thể sử dụng Mongoose trong ứng dụng cấp tốc của mình. Trình bày cách bạn có thể thiết lập kết nối với MongoDB, cấu trúc và xác thực dữ liệu được lưu vào cơ sở dữ liệu MongoDB của bạn và thực hiện các thao tác CRUD đơn giản.

Bằng cách sử dụng Mongoose trong các ứng dụng Express của mình, bạn có thể đơn giản hóa và hợp lý hóa các tương tác giữa ứng dụng của mình và cơ sở dữ liệu MongoDB.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *