Mongoose使用和安装操作/以及Mongoose安装操作失败/连接数据库端口的更改在6.2.4/mongoose对文档进行增删改查

6------------Node进阶-Mongoose

  • 6.1

------需求分析
6.1.1------为什么要用:1.之前我们都是通过命令行或者shell来完成对数据库的各种操作的,但在开发中大部分时候我们都需要通过程序来完成对数据库的操作
2.而Mongoose就是一个让我们可以通过Node来操作MongoDB的模块
6.1.2------mongoose是什么:1.http://mongoosejs.com/
2.Mongoose是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能
6.1.3------moogoose的优势:1.可以为文档创建一个模式结构
2.可以对模型中的对象/文档进行验证
3.数据可以通过类型转换为对象模型
4.可以使用中间件来应用业务逻辑
5.比Node原生的MongoDB驱动更容易

  • 6.2

--------基本使用: 在一个文件夹中进入cmd命令输入以下:
1.初始化
npm init 在这里插入图片描述
2.下载express
npm install express --save 在这里插入图片描述
在这里插入图片描述
3.下载mongoose 注意:如下载失败,可能是你原先安装了淘宝镜像,使得下载的路径不是:https://registry.npmjs.org/ ,ze在cmd中先输入:npm config set registry https://registry.npmjs.org/ 再输入npm install mongoose --save 即可
npm install mongoose --save

6.2.1-------相关概念:1.mongoose中提供了几个新的对象
2.Schema(模式对象) Schema对象定义约束了数据库中的文档结构
3.Model Model对象作为集合中的所以文档的表示,相当MongoDB数据库中的集合collection
4.Document Document表示集合中的具体文档
6.2.2-------基本步骤:
//1.引用模块
let mongoose = require(“mongoose”);
// 连接数据库
mongoose.connect(‘mongodb://localhost/m_data’);

                                 // 2.监听各种状态
                                 let db = mongoose.connection;
                                 db.on('error',()=>{
                                     console.log("连接失败");
                                 })

                                 db.once('open',function () {           //可使用箭头函数
                                     console.log('连接成功');
                                 });

                                 db.once('close',function () {           //可使用箭头函数
                                     console.log("数据断开成功");
                                 })

6.2.3-------使用例子:
                               //1.引用模块
                               let mongoose = require("mongoose");
                               // 连接数据库
                               mongoose.connect('mongodb://localhost/m_data');
                               mongoose.connection.once("open",()=>{
                                   console.log('数据库连接成功');
                               });
                               mongoose.connection.once("close",()=>{
                                   console.log('数据库连接失败');
                               });

                               // 2.创建Schema(模式对象)
                               let Schema = mongoose.Schema;
                               let personSchema = new Schema({
                                   name:String,
                                   age:Number,
                                   sex:{
                                       type:String,
                                       default:"男"
                                   },
                                   chat:String
                               })

                               // 3.创建Model对象
                               let personModel = mongoose.model("person",personSchema)

                               // 4.插入文档
                               personModel.create({
                                   name:"杨过",
                                   age:18,
                                  chat:"哈哈哈哈哈"
                               },(err)=>{
                                   if(!err){
                                       console.log("插入成功");
                                   }else {
                                       throw err;
                                   }
                               })

                               // 插入多条
                               personModel.create({
                                   name:"小龙女",
                                   age:18,
                                   sex:"女",
                                   chat:"终于等到你,还好没放弃"
                               },(err)=>{
                                   if(!err){
                                       console.log("插入成功");
                                  }else {
                                      throw err;
                                   }
                               })

运行结果:
在这里插入图片描述
6.2.4--------概述:使用步骤
1.下载安装mongoose npm i mongoose --save
2.在项目中引用mongoose let mongoose = require(“mongoose”);
3.连接MongoDB数据库 <1>mongoose.connect(‘mongodb://数据库的IP地址:端口号/数据库’)
<2>如果端口好是默认号(27017)则可以省略
4.监听MongoDB数据库的连接状态。 1.在mongoose对象中,有一个属性叫connection,该对象表示的就是数据库连接,通过监视该对象的状态,可以来监听数据库的连接和断开
2.mongoose.connection.once(“close”,()=>{console.log(‘数据库连接失败’);}); mongoose.connection.once(“open”,()=>{console.log(‘数据库连接成功’);});
**

  • 6.3-

----mongoose对文档进行增删改查 官方地址:https://mongoose.kkfor.com/**

 6.3.1----增加
        //1.引用模块
        let mongoose = require("mongoose");
        // 连接数据库
        mongoose.connect('mongodb://localhost/m_data');
        mongoose.connection.once("open",()=>{
            console.log('数据库连接成功');
        });
        mongoose.connection.once("close",()=>{
            console.log('数据库连接失败');
        });
        // 2.创建Schema(模式对象)
        let Schema = mongoose.Schema;
        let personSchema = new Schema({
            name:String,
            age:Number,
            sex:{
                type:String,
                default:"男"
            },
            chat:String
        })

        // 3.创建Model对象
        let personModel = mongoose.model("person",personSchema)

        // 4.增加
        personModel.create([
            {name:"张三",age:18,chat:'哈哈',sex:"女"},
            {name:"李四",age:28,chat:'呵呵'},
            {name:"王五",age:38,chat:'啊啊',sex:"女"},
            {name:"哈哈",age:48,chat:'安安'},
            {name:"呵呵",age:58,chat:'牛牛',sex:"女"},
        ],(err)=>{
            if(!err){
                console.log("增加成功");
            }else {
               throw err;
            }
        })

在这里插入图片描述
6.3.2------查找数据
// 查
personModel.find({},(err,docs)=>{ //docs是个数组类型
if(!err){
console.log(docs);
}
}) //异步操作

personModel.find({name:“张三”},(err,docs)=>{
if(!err){
console.log(docs);
}
})

// 查找所有name对应的列数,并隐藏id所对应的列 1是显示,0是隐藏
personModel.find({},{name:1,_id:0},{skip:5,limit:2},(err,docs)=>{ //{name:1,_id:0,sex:1}==》“name -_id sex” 一样 。skip 第5条开始 limit 显示2条
if(!err){
console.log(docs);
}
})

6.3.3----修改
personModel.update({name:“张三”},{$set:{age:89888}},{multi:true},(err)=>{ //增加{multi:true} 则修改多个,否则只会修改一个
if(!err){
console.log(“修改成功”);
}else {
throw err;
}
})

6.3.4----删除
Model.deleteMany() 删除多个
Model.deleteOne() 删除一个
personModel.remove({name:“张三”},(err)=>{ //删除所有对应的
if(!err){
console.log(“删除成功”);
}else {
throw err;
}
})

6.3.5----统计文档个数
personModel.count({},(err,count)=>{
if(!err){
console.log(“count”);
}else {
throw err;
}
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装依赖 安装`express`、`mongoose`、`body-parser`和`cors`: ``` npm install express mongoose body-parser cors --save ``` 2. 连接数据库 在`app.js`中连接数据库: ```javascript const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const cors = require('cors'); const app = express(); // 连接数据库 mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:')); db.once('open', function() { console.log('连接成功'); }); app.use(bodyParser.json()); app.use(cors()); app.listen(3000, () => console.log('服务器已启动')); ``` 3. 定义模型 在`models`文件夹下创建`user.js`文件,定义用户模型: ```javascript const mongoose = require('mongoose'); const userSchema = new mongoose.Schema({ name: String, age: Number, gender: String, }); const User = mongoose.model('User', userSchema); module.exports = User; ``` 4. 增加数据 在`app.js`中增加路由,实现增加用户功能: ```javascript const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const cors = require('cors'); const User = require('./models/user'); const app = express(); // 连接数据库 mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:')); db.once('open', function() { console.log('连接成功'); }); app.use(bodyParser.json()); app.use(cors()); // 增加用户 app.post('/users', (req, res) => { const user = new User({ name: req.body.name, age: req.body.age, gender: req.body.gender, }); user.save((err, user) => { if (err) { console.error(err); res.sendStatus(500); } else { res.json(user); } }); }); app.listen(3000, () => console.log('服务器已启动')); ``` 5. 查询数据 在`app.js`中增加路由,实现查询用户功能: ```javascript const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const cors = require('cors'); const User = require('./models/user'); const app = express(); // 连接数据库 mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:')); db.once('open', function() { console.log('连接成功'); }); app.use(bodyParser.json()); app.use(cors()); // 增加用户 app.post('/users', (req, res) => { const user = new User({ name: req.body.name, age: req.body.age, gender: req.body.gender, }); user.save((err, user) => { if (err) { console.error(err); res.sendStatus(500); } else { res.json(user); } }); }); // 查询用户 app.get('/users', (req, res) => { User.find((err, users) => { if (err) { console.error(err); res.sendStatus(500); } else { res.json(users); } }); }); app.listen(3000, () => console.log('服务器已启动')); ``` 6. 更新数据 在`app.js`中增加路由,实现更新用户功能: ```javascript const express = require('express'); const mongoose = require('mongoose'); const bodyParser = require('body-parser'); const cors = require('cors'); const User = require('./models/user'); const app = express(); // 连接数据库 mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:')); db.once('open', function() { console.log('连接成功'); }); app.use(bodyParser.json()); app.use(cors()); // 增加用户 app.post('/users', (req, res) => { const user = new User({ name: req.body.name, age: req.body.age, gender: req.body.gender, }); user.save((err, user) => { if (err) { console.error(err); res.sendStatus(500); } else { res.json(user); } }); }); // 查询用户 app.get('/users', (req, res) => { User.find((err, users) => { if (err) { console.error(err); res.sendStatus(500); } else { res.json(users); } }); }); // 更新用户 app.put('/users/:id', (req, res) => { User.findByIdAndUpdate(req.params.id, { $set: { name: req.body.name, age: req.body.age, gender: req.body.gender, }, }, { new: true }, (err, user) => { if (err) { console.error(err); res.sendStatus(500); } else { res.json(user);

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值