溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用nodejs怎么對(duì)mongodb數(shù)據(jù)庫(kù)進(jìn)行增加修刪該查操作

發(fā)布時(shí)間:2021-05-31 16:55:53 來(lái)源:億速云 閱讀:200 作者:Leah 欄目:web開(kāi)發(fā)

使用nodejs怎么對(duì)mongodb數(shù)據(jù)庫(kù)進(jìn)行增加修刪該查操作?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

以下是實(shí)例代碼:

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

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

 var url = 'mongodb://localhost:27017/test';  連接數(shù)據(jù)庫(kù)的地址

 3.連接數(shù)據(jù)庫(kù)

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

});

 4.實(shí)現(xiàn)增加修改刪除

 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; /*引入數(shù)據(jù)庫(kù) MongoClient*/

var DBurl = 'mongodb://localhost:27017/userDb'; // 連接數(shù)據(jù)庫(kù)的地址  student表示數(shù)據(jù)庫(kù)的名稱

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

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


app.get('/',function(req,res){
  var msg='這是數(shù)據(jù)庫(kù)的數(shù)據(jù)'
  ejs.renderFile('views/index.ejs',{msg:msg},function(err,data){
    res.send(data);
  })

})



app.get('/add',function(req,res){
  //增加數(shù)據(jù)

  MongoClient.connect(DBurl,function(err,db){ /*連接數(shù)據(jù)庫(kù)*/

    if(err){

      console.log(err);
      console.log('數(shù)據(jù)庫(kù)連接失敗');
      return;
    }

    //增加數(shù)據(jù)

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

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

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

        console.log('增加數(shù)據(jù)失敗');
        return;
      }
      res.send('增加數(shù)據(jù)成功');
      db.close();/*關(guān)閉數(shù)據(jù)庫(kù)*/
    })



  })
})




app.get('/edit',function(req,res){
  //增加數(shù)據(jù)

  //res.send('修改數(shù)據(jù)成功');


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

    if(err){

      console.log(err);
      console.log('數(shù)據(jù)庫(kù)連接失敗');
      return;
    }
    db.collection('user').updateOne({"name":"loaderman"},{$set:{
      "age":666
    }},function(error,data){
      if(error){

        console.log('修改數(shù)據(jù)失敗');
        return;
      }

      console.log(data);
      res.send('修改數(shù)據(jù)成功');
      db.close();/*關(guān)閉數(shù)據(jù)庫(kù)*/

    })



  })

})


app.get('/delete',function(req,res){
  //增加數(shù)據(jù)
  //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('數(shù)據(jù)庫(kù)連接失敗');
      return;
    }

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

      if(error){

        console.log('刪除失敗');
        return;
      }

      console.log(data);
      res.send('刪除數(shù)據(jù)成功');
      db.close();

    })
  })
})

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

      console.log('連接數(shù)據(jù)庫(kù)失敗');
      return;
    }

    //查詢數(shù)據(jù)
    var list=[]; /*放數(shù)據(jù)庫(kù)里面查詢的所有數(shù)據(jù)*/

    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表示數(shù)據(jù)循環(huán)完成*/

            /*獲取數(shù)據(jù)以后*/
            //console.log(list);

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

              res.send(data);
            })

          }

        }

    })

    //console.log(result);

  })

})

插入數(shù)據(jù)

/**
 * 插入單條數(shù)據(jù)
 * @param table_name 表名
 * @param insertData 插入的數(shù)據(jù)
 * @param callback 回調(diào)方法
 */
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);
    }
  });
};

查詢數(shù)據(jù)

/**
 * 查詢單條數(shù)據(jù)
 * @param table_name 表名
 * @param conditions 查詢條件
 * @param callback 回調(diào)方法
 */
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);
    }
  });
};

更新數(shù)據(jù)

/**
 * 更新單條數(shù)據(jù)
 * @param table_name 表名
 * @param conditions 查詢條件 {"name":'jackson影琪'}; 
 * @param updateStr 更新數(shù)據(jù) {$set: { "url" : "https://www.cnblogs.com/jackson-zhangjiang" }};
 * @param callback 回調(diào)方法
 */
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);
    }
  });
};

看完上述內(nèi)容,你們掌握使用nodejs怎么對(duì)mongodb數(shù)據(jù)庫(kù)進(jìn)行增加修刪該查操作的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI