关于 Node (4)——测试使用 mongoose 操作数据库

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();

8、数据库操作成功:
在这里插入图片描述

以上是我根据硅谷直聘的视频做的总结,希望帮助自己记忆的同时也能帮助到大家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装mongoose 在命令行中执行以下命令: ``` npm install mongoose ``` 2. 连接数据库Node.js中使用mongoose连接数据库需要先引入mongoose模块: ```javascript const mongoose = require('mongoose') ``` 接着使用mongoose.connect()方法连接数据库: ```javascript mongoose.connect('mongodb://localhost:27017/databaseName', { useNewUrlParser: true }) ``` 其中,mongodb://localhost:27017/databaseName是连接数据库的URL,其中localhost为数据库服务器地址,27017为MongoDB的默认端口号,databaseName为要连接的数据库名称。 { useNewUrlParser: true }是Mongoose的一个选项,以允许在连接时使用新的URL字符串解析器。 3. 定义Schema和Model 在使用mongoose之前,需要先定义Schema和Model。Schema是用来定义数据结构的,Model是由Schema生成的实例。 ```javascript const Schema = mongoose.Schema const userSchema = new Schema({ username: String, password: String, email: String }) const User = mongoose.model('User', userSchema) ``` 以上代码定义了一个名为User的Model,该Model对应的Schema定义了三个属性:username、password和email。 4. CRUD操作 通过定义好的Model可以进行CRUD操作。以下是一些常用的操作: - 新增数据 ```javascript const user = new User({ username: 'Tom', password: '123456', email: 'tom@example.com' }) user.save(function (err, user) { if (err) return console.error(err) console.log(user.username + ' saved to database.') }) ``` - 查询数据 ```javascript User.find(function (err, users) { if (err) return console.error(err) console.log(users) }) ``` - 更新数据 ```javascript User.findOneAndUpdate({ username: 'Tom' }, { password: '654321' }, function (err, user) { if (err) return console.error(err) console.log(user) }) ``` - 删除数据 ```javascript User.deleteOne({ username: 'Tom' }, function (err) { if (err) return console.error(err) console.log('User deleted.') }) ``` 以上代码演示了如何使用mongoose连接MongoDB数据库,并进行CRUD操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值