使用 mongoose 操作 mongodb 增删改查
使用 mongoose 操作 mongodb 的测试文件
- 连接数据库
1.1 引入 mongoose
1.2 连接指定的数据库(URL 只有数据库是变化的)
1.3 获取连接对象
1.4 绑定连接完成的监听(用来提示连接成功)- 得到对应特定集合的 Model
2.1 字义 Schema(描述文档结构)
2.2 定义 Model(与集合对应,可以操作集合)- 通过 Model 或其实例对集合数据进行 CRUD 操作
3.1 通过 Model 实例的 save() 添加数据
3.2 通过 Model 的 find()/findOne() 查询多个或一个数据
3.3 通过 Model 的 findByIdAndUpdate() 更新某个数据
3.4 通过 Model 的 deleteOne() 删除匹配的数据
- */
下载mongoose
依赖包
npm install --save mongoose
下载md5
加密依赖包
npm install --save blueimp-md5
下面的代码位置: db_test.js
// 引入 md5 依赖 const md5 = require('blueimp-md5')
1. 连接数据库
// 1.1 引入 mongoose const mongoose = require('mongoose') // 1.2 连接指定的数据库(URL 只有数据库是变化的) mongoose.connect('mongodb://localhost:27017/zp_test', {useNewUrlParser: true}) // 1.3 获取连接对象 const conn = mongoose.connection // 1.4 绑定连接完成的监听(用来提示连接成功) conn.on('connected', function () { console.log('数据库连接成功!') })
2. 得到对应特定集合的 Model
// 2.1 字义 Schema(描述文档结构) const userSchema = mongoose.Schema({ username: {type: String, require: true}, // 用户名 password: {type: String, required: true}, // 密码 type: {type: String, required: true} // 用户类型: 求职者/老板 }) // 2.2 定义 Model(与集合对应,可以操作集合) const UserModel = mongoose.model('users', userSchema) // 集合名: users
3. 通过 Model 或其实例对集合数据进行 CRUD 操作
3.1 通过 Model 实例的 save() 添加数据 function testSave() { // user 数据对象 const user = { username: 'mandy', password: md5('1234'), type: '求职者' } // 创建 Model 实例 const userModel = new UserModel(user) // 或者像下面这样添加数据 // const userModel = new UserModel({username: 'Tom', password: md5('3333'), type: '老板'}) // 保存到数据库 userModel.save(function (err, user) { console.log('save', err, user) }) } // testSave() 3.2 通过 Model 的 find()/findOne() 查询多个或一个数据 function testFind() { // 查找多个 UserModel.find(function (err, users) { // 如果有匹配返回一个[user, user...], 如果没有一个匹配的返回[] console.log('find()', err, users) }) // 查找一个 UserModel.findOne({_id: '5cdf99ebf3539334948ae2c8'}, function (err, user) { // 如果有匹配返回的是一个user console.log('findOne()', err, user) }) } // testFind() 3.3 通过 Model 的 findByIdAndUpdate() 更新某个数据 function testUpdate() { UserModel.findByIdAndUpdate({_id: '5cdfacc55684652a08b49014'}, {username: '一个老板'}, function (err, user) { console.log('findByIdAndUpdate()', err, user) }) } // testUpdate() 3.4 通过 Model 的 remove() 删除匹配的数据 function testDelete() { UserModel.deleteOne({_id: '5cdf9d761a1c050c70bc0d09'}, function (err, result) { console.log('deleteOne()', err, result) }) } // testDelete()
运行:
node db_test.js
可以在mongodb的可视化工具中查看效果.