Node Mongoose用法详解
Mongoose是一个基于Node.js平台的MongoDB对象建模工具,它在操作MongoDB数据库时,提供了很多方便的操作方法,可以让我们更加方便、灵活地操作数据。本文介绍Mongoose的常用用法包括:Mongoose的使用、Schema的定义、Schema对象、model文档等。
Mongoose的使用
首先需要在项目中引入Mongoose:
const mongoose = require('mongoose');
然后我们需要连接到MongoDB数据库:
const DB_URL = 'mongodb://localhost:27017/test';
mongoose.connect(DB_URL, { useNewUrlParser: true });
const connection = mongoose.connection;
connection.on('error', console.error.bind(console, 'connection error:'));
connection.once('open', () => {
console.log('MongoDB 数据库连接成功!');
});
这样我们就成功连接到MongoDB数据库了。
Schema的定义
Schema就是Mongoose中数据结构的定义,可以理解为表结构的定义。Mongoose中每个Schema都映射到MongoDB中的一个集合(collection),并定义集合中文档(document)的结构。例如我们要定义一个用户模型,可以定义如下的Schema:
const userSchema = new mongoose.Schema({
name: String,
age: Number,
email: String,
createTime: { type: Date, default: Date.now },
});
Schema对象
定义好了Schema之后,我们可以通过Schema对象来操作文档。例如我们要向用户模型中添加一条数据,可以这样操作:
const User = mongoose.model('User', userSchema);
const user = new User({
name: '张三',
age: 21,
email: 'zhangsan@test.com',
});
user.save((err, doc) => {
if (err) {
console.error('保存失败:', err);
} else {
console.log('保存成功:', doc);
}
});
上述代码中,我们定义了一个User模型,并传入userSchema模式,然后实例化一个user对象,并保存在数据库中。
model文档
model是Schema的实例。每个document都是一个model的实例,document的行为都由其对应的model所定义。我们可以通过Schema来定义model,例如:
const User = mongoose.model('User', userSchema);
这样我们就成功地定义了一个User的model,然后可以用它来操作MongoDB数据库。
示例说明:
下面我们举个例子,采集食品的信息,我们定义一个foodSchema,包含字段:名称、种类、价格、描述等信息。
首先定义Schema:
const foodSchema = new mongoose.Schema({
name: String,
type: String,
price: Number,
description: String,
createTime: { type: Date, default: Date.now },
});
然后根据Schema定义model:
const Food = mongoose.model('Food', foodSchema);
接着向数据库中添加一条数据:
const potato = new Food({
name: '土豆',
type: '蔬菜',
price: 3.5,
description: '一种常见的植物,为普通人及穷人的重要食糧。',
});
potato.save((err, doc) => {
if (err) {
console.error('保存失败:', err);
} else {
console.log('保存成功:', doc);
}
});
成功添加一条记录之后,我们还可以通过以下方式来查询添加记录:
Food.find({}, (err, docs) => {
if (err) {
console.error('查询失败:', err);
} else {
console.log('查询成功:', docs);
}
});
以上就是对Mongoose的用法详解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】 - Python技术站