MongoDB 是一个流行的 NoSQL 数据库,而 Mongoose 是一个非常好用的 Node.js 的 MongoDB 驱动。Mongoose 提供了方便的 API 来操作 MongoDB,同时也可以增强代码的可读性和可维护性。在这篇文章里,我们将学习 Mongoose 操作 MongoDB 的基本知识,包括 Schema 的定义、Model 的创建、实例的增删改查等操作。
安装 Mongoose
在使用 Mongoose 之前,我们需要安装 Mongoose。可以通过 npm 命令进行安装:
npm install mongoose
连接 MongoDB 数据库
在操作数据之前,我们需要通过 Mongoose 连接 MongoDB 数据库。可以使用 mongoose.connect() 方法来进行连接:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true });
其中,mongodb://localhost/test 表示连接本地的 test 数据库。当连接成功时,可以通过以下代码进行提示:
const db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:')); db.once('open', function() { console.log('连接成功'); });
定义 Schema
在 Mongoose 中,Schema 可以理解为一个数据模板,定义了数据的结构。可以通过新建一个 Mongoose.Schema 实例来定义一个模型:
const Schema = mongoose.Schema; const userSchema = new Schema({ name: String, age: Number });
上述代码定义了一个用户模型,包含了 name 和 age 两个字段。
创建 Model 对象
定义好了 Schema 之后,就可以通过 mongoose.model() 方法来创建 Model 对象。Model 对象是操作 MongoDB 数据库的重要对象。可以参考以下代码:
const UserModel = mongoose.model('User', userSchema);
上述代码创建了一个名为 "User" 的 Model 对象,该 Model 对象的 Schema 为 userSchema。
查询数据
对于已经创建好了的 Model 对象,我们可以使用一些方法来进行查询:
所有数据的查询
UserModel.find(function(err, users) { if (err) return console.error(err); console.log(users); });
上述代码查询了 User 模型中的所有数据,并将结果打印出来。
指定条件的查询
UserModel.find({ name: 'Alice' }, function(err, users) { if (err) return console.error(err); console.log(users); });
上述代码查询了 User 模型中名字为 Alice 的用户数据,并将结果打印出来。
查询单条数据
UserModel.findOne({ name: 'Alice' }, function(err, user) { if (err) return console.error(err); console.log(user); });
上述代码查询了 User 模型中名字为 Alice 的一个用户数据,并将结果打印出来。
新增数据
对于 Model 对象,我们也可以使用一些方法来进行新增数据:
const user = new UserModel({ name: 'Tom', age: 20 }); user.save(function(err) { if (err) return console.error(err); console.log('保存成功'); });
上述代码创建了一个新的 User 数据,并将其保存到 MongoDB 数据库中,并将结果打印出来。
修改数据
对于 Model 对象,我们也可以使用一些方法来进行修改数据:
UserModel.updateOne({ name: 'Tom' }, { age: 21 }, function(err) { if (err) return console.error(err); console.log('修改成功'); });
上述代码将 User 模型中名字为 Tom 的用户年龄修改为了 21 岁。
删除数据
对于 Model 对象,我们也可以使用一些方法来进行删除数据:
UserModel.remove({ name: 'Tom' }, function(err) { if (err) return console.error(err); console.log('删除成功'); });
上述代码删除了 User 模型中名字为 Tom 的用户数据。
总结
在本文中,我们学习了 Mongoose 操作 MongoDB 的基本知识点,包括 Schema 的定义、Model 的创建、实例的增删改查等操作。通过本文的学习,相信您已经能够掌握 Mongoose 的基本用法,可以开心地操作 MongoDB 了!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64b3ccc248841e98940080c2