溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mongodb初始化并使用node.js實現(xiàn)mongodb操作封裝方法

發(fā)布時間:2020-10-20 09:44:23 來源:腳本之家 閱讀:165 作者:JobsOfferings 欄目:web開發(fā)

mongodb的下載只要在https://www.mongodb.com/網站就能夠下載

或者使用本地下載 https://www.jb51.net/softs/590664.html

下載后安裝只用一直點next就可以,注意最好使用默認路徑安裝到C盤,然后在任意位置建立一個文件夾用于儲存你的數據庫

這里我命名的是mongodbWorkspace

復制他的路徑,在命令行工具(windows快捷鍵win+R)中,輸入mongod --dbpath 你的路徑,我的如下所示

mongodb初始化并使用node.js實現(xiàn)mongodb操作封裝方法

現(xiàn)在你就已經初始化好了你的數據庫,不用關掉它,他打開來才是開啟了數據庫服務,然后再新建一個命令行工具窗口

輸入mongo,若出現(xiàn)以下窗口,代表你的連接已經成功了,這里是能夠寫操作mongodb的代碼的

輸入use yourDatabaseName =>如果你有這個數據庫名,則進入,如果沒有這個數據庫名,則新建了這個數據庫

mongodb初始化并使用node.js實現(xiàn)mongodb操作封裝方法

現(xiàn)在我打開了我的VScode,新建一個終端后輸入npm installmongodb下載完成后,在index.js中導入(后面會有代碼)

先定義一個用于儲存方法的JS文件,我命名為myFun.js,內容如下

myFun.js

//傳入db環(huán)境, 集合名字,需要插入的數據,callback
var insertData = function (db, myCollection, data, callback) {
  //獲得指定的集合 
  var collection = db.collection(myCollection);
  //插入數據
  collection.insert(data, function (err, result) {
    //如果存在錯誤
    if (err) {
      console.log('Error:' + err);
      return;
    }
    //調用傳入的回調方法,將操作結果返回
    callback(result);
  });
}
//傳入db環(huán)境, 集合名字,要修改的數據的條件,要修改的結果,callback
var updateData = function (db, myCollection, where, set, callback) {
  //獲得指定的集合 
  var collection = db.collection(myCollection);
  //修改數據
  collection.updateMany(where, set, function (err, result) {
    //如果存在錯誤
    if (err) {
      console.log('Error:' + err);
      return;
    }
    //調用傳入的回調方法,將操作結果返回
    callback(result);
  });
}
//傳入db環(huán)境, 集合名字,要查詢的數據的條件,要顯示的字段,callback
var findData = function (db, myCollection, where, set, callback) {
  //獲得指定的集合 
  var collection = db.collection(myCollection);
  //查詢數據
  collection.find(where, set).toArray(function (err, result) {
    //如果存在錯誤
    if (err) {
      console.log('Error:' + err);
      return;
    }
    //調用傳入的回調方法,將操作結果返回
    callback(result);
  });
}
//傳入db環(huán)境, 集合名字,要刪除數據的條件,callback
var deleteData = function (db, myCollection, where, callback) {
  //獲得指定的集合 
  var collection = db.collection(myCollection);
  collection.remove(where, function (err, result) {
    //如果存在錯誤
    if (err) {
      console.log('Error:' + err);
      return;
    }
    //調用傳入的回調方法,將操作結果返回
    callback(result);
  });
}


//暴露方法
module.exports.insertData = insertData;
module.exports.updateData = updateData;
module.exports.findData = findData;
module.exports.deleteData = deleteData;

最后的幾行是用來暴露內部方法的,在你的index.js中可以require這個JS文件,然后就能訪問到內部的數據及方法

這里是按照我的想法來定義的,這里只是一個示例,大家最好能按照自己的想法來設計自己的方法,會使用的更加舒服,比如myCollection可以傳進來他的集合名字,也可以傳進來的是這個集合名字的實例,這樣會對自己有很大的提升,下面是我的主JS文件

index.js

var MongoClient = require('mongodb').MongoClient;
var myFun = require('./myFun');

//定義連接數據庫的地址
const url = 'mongodb://localhost:27017/';
var dbName = 'kejikeji'

//連接數據庫
MongoClient.connect(url, (err, client) => {
  if (err) {
    console.log('數據連接失敗');
    return false;
  }
  console.log('數據庫連接成功');
  let db = client.db(dbName);  /*獲取db對象*/
  let collection = "user";
  var data = [{ "name": "mongodb3.0", "age": 114 }, { "name": "mongodb3.0", "age": 17 }];
   myFun.insertData(db, collection, data, (result) => {
     console.log(result.ops);
   });
  //要修改數據的條件,>=10歲的用戶
  var updateWhere = { age: { "$gte": 10 } };
  //要修改的結果
  var updateSet = { $set: { age: 95 } };
  myFun.updateData(db, collection, updateWhere, updateSet, (result) => {
    console.log(result.result);
  });
  //要查詢數據的條件,>=10歲的用戶
  var findWhere = { age: { "$gte": 10 } };
  //要顯示的字段
  var findSet = { age: 1 };
  myFun.findData(db, collection, findWhere, findSet, (result) => {
    console.log(result[1].age);
  });
  //要刪除數據的條件,name=mongodb3.0的用戶刪除
  var deleteWhere = { name: "mongodb3.0" };
  myFun.deleteData(db, collection, deleteWhere, (result) => {
    console.log(result);
  });
})

mongodb初始化并使用node.js實現(xiàn)mongodb操作封裝方法

這是我的運行截圖,代表操作都正確了,在第二個操作窗口,大家可以use進入數據庫中,輸入db.yourCollectionName.find()查詢此集合內的全部字段

mongodb初始化并使用node.js實現(xiàn)mongodb操作封裝方法

這樣就能確定自己的語句有沒有起作用了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI