1、下载依赖包:
npm install --save mongoose bluelmp-md5
2、在项目下新建 db 文件夹,并创建 db_test.js 文件:
3、连接数据库,代码如下:
/*1. 连接数据库*/
// 1.1. 引入mongoose
const mongoose = require('mongoose');
// 1.2. 连接指定数据库(URL只有数据库是变化的)
mongoose.connect('mongodb://localhost:27017/gzhipin_test');
// 1.3. 获取连接对象
const conn = mongoose.connection;
// 1.4. 绑定连接完成的监听(用来提示连接成功)
conn.on('connected', function () { // 连接成功回调
console.log('数据库连接成功, YE!!!')
});
4、输入 node db/db_test.js 运行:
5、得到对应特定集合的 Model ,代码如下:
/*2. 得到对应特定集合的Model*/
// 2.1. 字义Schema(描述文档结构)
const userSchema = mongoose.Schema({
// 指定文档的结构: 属性名/属性值的类型, 是否是必须的, 默认值
username: {type: String, required: true}, // 用户名
password: {type: String, required: true}, // 密码
type: {type: String, required: true}, // 用户类型
header: {type: String}
});
// 2.2. 定义Model(与集合对应, 可以操作集合)
const UserModel = mongoose.model('user', userSchema) // 集合的名称为: users
6、安装 Webstorm 的 mongodb 插件:Mongo Plugin :
详细过程可以看我的博客:安装 Webstorm 的 mongodb 插件:Mongo Plugin
上述步骤成功后,显示如下图所示:
7、通过 Model 或其 实例 对集合数据进行CRUD操作:
/*3. 通过Model或其实例对集合数据进行CRUD操作*/
// 3.1. 通过Model实例的save()添加数据
function testSave() {
// 创建UserModel的实例
const userModel = new UserModel({username: 'Bob', password: md5('234'), type: 'laoban'})
// 调用save()保存
userModel.save(function (error, user) {
console.log('save()', error, user)
})
}
testSave();
// 3.2. 通过Model的find()/findOne()查询多个或一个数据
function testFind() {
// 查询多个: 得到是包含所有匹配文档对象的数组, 如果没有匹配的就是[]
UserModel.find({_id:'5ae3d7b7614c613db8abb914'}, function (error, users) {
console.log('find()', error, users)
});
// 查询一个: 得到是匹配的文档对象, 如果没有匹配的就是null
UserModel.findOne({_id:'5ae3d7b7614c613db8abb914'}, function (error, user) {
console.log('findOne()', error, user)
})
}
testFind();
// 3.3. 通过Model的findByIdAndUpdate()更新某个数据
function testUpdate() {
UserModel.findByIdAndUpdate({_id:'5ae3d7b7614c613db8abb914'},
{username:'Jack'}, function (error, oldUser) {
console.log('findByIdAndUpdate()', error, oldUser)
})
}
// testUpdate()
// 3.4. 通过Model的remove()删除匹配的数据
function testDelete() {
UserModel.remove({_id:'5ae3d7b7614c613db8abb914'}, function (error, doc) {
console.log('remove()', error, doc) // {n: 1/0, ok: 1}
})
}
testDelete();
以上是我根据硅谷直聘的视频做的总结,希望帮助自己记忆的同时也能帮助到大家。