mongoose操作数据库mongodb,增删改查, 了解一下

mongoose操作数据库

1,mongoose模块

mongoose 简介

Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用。

http://mongoosejs.com/

2,mongoose的操作流程

安装mongoose

npm install mongoose -S

引入mongoose

const mongoose = require('mongoose')     // mongoose 就是一个实例,这个实例身上有很多的方法

连接数据库

使用mongoose连接数据库的前提条件是:

1、mongo数据库已经运行。
2、已经安装了mongoose包

例如:连接本地mongodb ,本机的ip 127.0.0.1,端口:27017 数据库:students


mongoose.connect("mongodb://127.0.0.1:27017/students",function(err){
   if(!err){  //如果连接成功,则打印出connected to Mongodb
      console.log("connected to Mongodb");
   }else{
      throw err;//如果连接失败,则抛出异常
   }
});

创建骨架【 定义字段 】

类似: 一个表就是一个骨架,所以骨架不止一个。

var Schema = mongoose.Schema;
const studentSchema = new Schema({
  name: String,
  age: String
})

创建模型 -> 用于操作数据库

通过模式studentSchema 创建一个模型studentModel

// const studentModel = mongoose.model( 集合名称【 复数 】,对应的骨架 )
const studentModel = mongoose.model("students",studentSchema  );

创建实体 -> 新增数据

const data = new studentModel (); 
data.name="tangyan";
data.age="18";
//通过save方法保存
data.save((err)=>{
    if (err) {
       console.log('保存失败');  
       return;
    }
 });

删除数据

思路:

1、删除数据首先要知道删除哪一条信息,需要知道信息的id.
2、把对应id的数据查询出来,执行remove方法
假如我们要删除id=”57e24521a755e1154039a403”的数据。

//xxx.findById( _id, ( err,doc ) => { doc.remove() {})
var id=57e24521a755e1154039a403”; 
studentModel.findById(id,(err,doc)=>{
   if(!doc){
      return next(new NotFound("Doc not found"))
   }else{
      doc.remove(function(){
         console.log('删除成功');
      })
   }
});

** 修改数据**

思路:
先把对应id的数据查询出来,对需要修改的字段重新赋值,然后执行save方法保存,假如我们要修改id=”57e24521a755e1154039a403”的数据。

// xxx.findById( _id, ( err,doc ) => {  doc.name = xxx   doc.save() })
var id=57e24521a755e1154039a403”; 

studentModel.findById(id,(err,doc)=>{   console.log(doc);
   doc.name="aaa" ;    //把name修改为bbb
   doc.save((err) =>{
      if(!err){
          console.log('修改成功');
      }else{
         throw err;
      }
   });
});

查找数据

下面find第一个参数{}里面为空,表示查询所有的数据:
docs表示查询的结果集合,可用于渲染ejs模板引擎。

//  user.find({},( err,docs ) => {  })
studentModel.find({},(err,docs)=>{
	console.log(docs);
});
  • 1
    点赞
  • 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、付费专栏及课程。

余额充值