mongoose从入门到精通

314 阅读2分钟

mongoose从入门到精通

  1. 安装Mongoose:在开始使用Mongoose之前,您需要先安装它。可以通过npm命令行工具在您的应用程序中安装Mongoose。
npm install mongoose
  1. 创建连接:使用mongoose.connect()连接到MongoDB数据库。它的第一个参数是数据库URL,第二个是一个可选的配置对象。您可以将此函数作为异步调用或使用Promise,并在连接成功时显示消息。
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/testdb', {useNewUrlParser: true});

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  console.log('Connected to MongoDB database!');
});
  1. 定义模式:使用Mongoose Schema来定义数据模型。模式是一个对象,该对象描述了您要在数据库中存储的数据的特定字段,并在模型对象的基础上约束数据。如下是一个简单的例子:
const { Schema } = mongoose;

const userSchema = new Schema({
  name: String,
  age: Number,
  email: String
});
  1. 创建模型:定义模型,将模式和集合名称传递给mongoose.model()。模型是由Mongoose提供,用于对数据库实现不同的操作。
const User = mongoose.model('User', userSchema);
  1. 创建文档:模型对象的一个实例称为文档,可以使用Model.create()方法创建文档并将其插入数据库中。
const user = new User({
  name: 'Bob',
  age: 25,
  email: 'bob@example.com'
});

user.save(function (err) {
  if (err) return handleError(err);
  // saved!
});
  1. 查询数据:Mongoose提供了多种查询数据库的方法。例如查找所有用户:
User.find({}, function(err, users) {
  if (err) return handleError(err);
  console.log(users);
});
  1. 更新数据:更新数据需要调用模型对象的updateOne()或者updateMany()等方法。
User.updateOne({ name: 'Bob' }, { age: 26 }, function(err, res) {
  if (err) return handleError(err);
  console.log(res);
});
  1. 删除数据:删除数据需要调用模型对象的deleteOne()或者deleteMany()等方法。
User.deleteOne({ name: 'Bob' }, function(err, res) {
  if (err) return handleError(err);
  console.log(res);
});
  1. Schema类型:除了嵌套的对象和数组之外,Mongoose还有许多其他的Schema类型,如String、Number、Buffer、Date、Boolean、Mixed、ObjectId、Array等。

  2. 中间件:Mongoose提供了多种中间件,如文档中间件、模型中间件、聚合中间件、查询中间件等,允许您在执行前或后对文档执行操作。例如给定Schema:

const userSchema = new Schema({
  name: String,
  age: Number,
  email: String
});

userSchema.pre('save', function(next) {
  console.log('Before saving document');
  next();
});

userSchema.post('save', function(doc) {
  console.log('After saving document with _id: ' + doc._id);
});

以上就是mongoose从入门到精通的详细教程,掌握这些知识将尽可能地优化您的Mongoose实现。