nodejs对mongodb数据库的增加修删该查实例代码


Posted in NodeJs onJanuary 05, 2020

以下是实例代码:

/**
1.npm install mongodb --save-dev / cnpm install mongodb --save-dev

2.var MongoClient = require('mongodb').MongoClient;

 var url = 'mongodb://localhost:27017/test';  连接数据库的地址

 3.连接数据库

 MongoClient.connect(url, function(err, db) {

});

 4.实现增加修改删除

 MongoClient.connect(url, function(err, db) {

  db.collection('user').insertOne({'name':'zhangsan'},function(error,data){

  })

});


 */
var http=require('http');

var ejs=require('ejs');

var MongoClient = require('mongodb').MongoClient; /*引入数据库 MongoClient*/

var DBurl = 'mongodb://localhost:27017/userDb'; // 连接数据库的地址  student表示数据库的名称

var url=require('url'); /*引入url模块*/
var app=require('./model/express-route.js');

http.createServer(app).listen(3000);


app.get('/',function(req,res){
  var msg='这是数据库的数据'
  ejs.renderFile('views/index.ejs',{msg:msg},function(err,data){
    res.send(data);
  })

})



app.get('/add',function(req,res){
  //增加数据

  MongoClient.connect(DBurl,function(err,db){ /*连接数据库*/

    if(err){

      console.log(err);
      console.log('数据库连接失败');
      return;
    }

    //增加数据

    db.collection('user').insertOne({

      "name":"loaderman",
      "age":10

    },function(error,result){
      if(error){

        console.log('增加数据失败');
        return;
      }
      res.send('增加数据成功');
      db.close();/*关闭数据库*/
    })



  })
})




app.get('/edit',function(req,res){
  //增加数据

  //res.send('修改数据成功');


  MongoClient.connect(DBurl,function(err,db){

    if(err){

      console.log(err);
      console.log('数据库连接失败');
      return;
    }
    db.collection('user').updateOne({"name":"loaderman"},{$set:{
      "age":666
    }},function(error,data){
      if(error){

        console.log('修改数据失败');
        return;
      }

      console.log(data);
      res.send('修改数据成功');
      db.close();/*关闭数据库*/

    })



  })

})


app.get('/delete',function(req,res){
  //增加数据
  //delete?name=lisi


  //console.log(url.parse(req.url,true));

  var query=url.parse(req.url,true).query;


  //console.log(query.name);

  var name=query.name;


  MongoClient.connect(DBurl,function(err,db){

    if(err){

      console.log(err);
      console.log('数据库连接失败');
      return;
    }

    db.collection('user').deleteOne({"name":name},function(error,data){

      if(error){

        console.log('删除失败');
        return;
      }

      console.log(data);
      res.send('删除数据成功');
      db.close();

    })
  })
})

app.get('/query',function(req,res){
  MongoClient.connect(DBurl,function(err,db){
    if(err){

      console.log('连接数据库失败');
      return;
    }

    //查询数据
    var list=[]; /*放数据库里面查询的所有数据*/

    var result=db.collection('user').find({});


    result.each(function(error,doc){


      //console.log(doc);
        if(error){
          console.log(error);
        }else{

          if(doc!=null){
            list.push(doc);

          }else{ /*doc==null表示数据循环完成*/

            /*获取数据以后*/
            //console.log(list);

            ejs.renderFile('views/index.ejs',{list:list},function(err,data){

              res.send(data);
            })

          }

        }

    })

    //console.log(result);

  })

})

插入数据

/**
 * 插入单条数据
 * @param table_name 表名
 * @param insertData 插入的数据
 * @param callback 回调方法
 */
MongoDbAction.insertData= function (table_name, insertData , callback) {
  var node_model = this.getConnection(table_name);
  node_model.insertOne(insertData , function (err, res) {
    if (err) {
      callback(err);
    } else {
      callback(null, res);
    }
  });
};

查询数据

/**
 * 查询单条数据
 * @param table_name 表名
 * @param conditions 查询条件
 * @param callback 回调方法
 */
MongoDbAction.findOne = function (table_name, conditions, callback) {
  var node_model = this.getConnection(table_name);
  node_model.findOne(conditions, function (err, res) {
    if (err) {
      callback(err);
    } else {
      callback(null, res);
    }
  });
};

更新数据

/**
 * 更新单条数据
 * @param table_name 表名
 * @param conditions 查询条件 {"name":'jackson影琪'}; 
 * @param updateStr 更新数据 {$set: { "url" : "https://www.cnblogs.com/jackson-zhangjiang" }};
 * @param callback 回调方法
 */
MongoDbAction.updateOne= function (table_name, conditions,updateStr , callback) {
  var node_model = this.getConnection(table_name);
  node_model.updateOne(conditions,updateStr, function (err, res) {
    if (err) {
      callback(err);
    } else {
      callback(null, res);
    }
  });
};

以上就是本次介绍的全部相关知识点,感谢大家的学习。如果有任何补充,可以联系小编。

NodeJs 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
Nodejs中 npm常用命令详解
Jul 04 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
nodejs mysql 实现分页的方法
Jun 06 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
nodejs实现爬取网站图片功能
Dec 14 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 NodeJs
nodejs log4js 使用详解
May 31 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 #NodeJs
nodejs环境使用Typeorm连接查询Oracle数据
Dec 05 #NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 #NodeJs
NodeJS实现一个聊天室功能
Nov 25 #NodeJs
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
Nov 18 #NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 #NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 #NodeJs
You might like
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
Python探索之Metaclass初步了解
2017/10/28 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
人事行政经理岗位职责
2014/06/18 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2015年校长新年寄语
2014/12/08 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Python基础之变量的相关知识总结
2021/06/23 Python
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers