mongoose从入门到精通
- 安装Mongoose:在开始使用Mongoose之前,您需要先安装它。可以通过npm命令行工具在您的应用程序中安装Mongoose。
npm install mongoose
- 创建连接:使用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!');
});
- 定义模式:使用Mongoose Schema来定义数据模型。模式是一个对象,该对象描述了您要在数据库中存储的数据的特定字段,并在模型对象的基础上约束数据。如下是一个简单的例子:
const { Schema } = mongoose;
const userSchema = new Schema({
name: String,
age: Number,
email: String
});
- 创建模型:定义模型,将模式和集合名称传递给mongoose.model()。模型是由Mongoose提供,用于对数据库实现不同的操作。
const User = mongoose.model('User', userSchema);
- 创建文档:模型对象的一个实例称为文档,可以使用Model.create()方法创建文档并将其插入数据库中。
const user = new User({
name: 'Bob',
age: 25,
email: 'bob@example.com'
});
user.save(function (err) {
if (err) return handleError(err);
// saved!
});
- 查询数据:Mongoose提供了多种查询数据库的方法。例如查找所有用户:
User.find({}, function(err, users) {
if (err) return handleError(err);
console.log(users);
});
- 更新数据:更新数据需要调用模型对象的updateOne()或者updateMany()等方法。
User.updateOne({ name: 'Bob' }, { age: 26 }, function(err, res) {
if (err) return handleError(err);
console.log(res);
});
- 删除数据:删除数据需要调用模型对象的deleteOne()或者deleteMany()等方法。
User.deleteOne({ name: 'Bob' }, function(err, res) {
if (err) return handleError(err);
console.log(res);
});
-
Schema类型:除了嵌套的对象和数组之外,Mongoose还有许多其他的Schema类型,如String、Number、Buffer、Date、Boolean、Mixed、ObjectId、Array等。
-
中间件: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实现。