最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2019年04月02日 15:27:13   作者:JobsOfferings  
這篇文章主要介紹了mongodb初始化并使用node.js實(shí)現(xiàn)mongodb操作封裝方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

mongodb的下載只要在https://www.mongodb.com/網(wǎng)站就能夠下載

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

下載后安裝只用一直點(diǎn)next就可以,注意最好使用默認(rèn)路徑安裝到C盤(pán),然后在任意位置建立一個(gè)文件夾用于儲(chǔ)存你的數(shù)據(jù)庫(kù)

這里我命名的是mongodbWorkspace

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

現(xiàn)在你就已經(jīng)初始化好了你的數(shù)據(jù)庫(kù),不用關(guān)掉它,他打開(kāi)來(lái)才是開(kāi)啟了數(shù)據(jù)庫(kù)服務(wù),然后再新建一個(gè)命令行工具窗口

輸入mongo,若出現(xiàn)以下窗口,代表你的連接已經(jīng)成功了,這里是能夠?qū)懖僮鱩ongodb的代碼的

輸入use yourDatabaseName =>如果你有這個(gè)數(shù)據(jù)庫(kù)名,則進(jìn)入,如果沒(méi)有這個(gè)數(shù)據(jù)庫(kù)名,則新建了這個(gè)數(shù)據(jù)庫(kù)

現(xiàn)在我打開(kāi)了我的VScode,新建一個(gè)終端后輸入npm installmongodb下載完成后,在index.js中導(dǎo)入(后面會(huì)有代碼)

先定義一個(gè)用于儲(chǔ)存方法的JS文件,我命名為myFun.js,內(nèi)容如下

myFun.js

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


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

最后的幾行是用來(lái)暴露內(nèi)部方法的,在你的index.js中可以require這個(gè)JS文件,然后就能訪問(wèn)到內(nèi)部的數(shù)據(jù)及方法

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

index.js

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

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

//連接數(shù)據(jù)庫(kù)
MongoClient.connect(url, (err, client) => {
  if (err) {
    console.log('數(shù)據(jù)連接失敗');
    return false;
  }
  console.log('數(shù)據(jù)庫(kù)連接成功');
  let db = client.db(dbName);  /*獲取db對(duì)象*/
  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);
   });
  //要修改數(shù)據(jù)的條件,>=10歲的用戶(hù)
  var updateWhere = { age: { "$gte": 10 } };
  //要修改的結(jié)果
  var updateSet = { $set: { age: 95 } };
  myFun.updateData(db, collection, updateWhere, updateSet, (result) => {
    console.log(result.result);
  });
  //要查詢(xún)數(shù)據(jù)的條件,>=10歲的用戶(hù)
  var findWhere = { age: { "$gte": 10 } };
  //要顯示的字段
  var findSet = { age: 1 };
  myFun.findData(db, collection, findWhere, findSet, (result) => {
    console.log(result[1].age);
  });
  //要?jiǎng)h除數(shù)據(jù)的條件,name=mongodb3.0的用戶(hù)刪除
  var deleteWhere = { name: "mongodb3.0" };
  myFun.deleteData(db, collection, deleteWhere, (result) => {
    console.log(result);
  });
})

這是我的運(yùn)行截圖,代表操作都正確了,在第二個(gè)操作窗口,大家可以u(píng)se進(jìn)入數(shù)據(jù)庫(kù)中,輸入db.yourCollectionName.find()查詢(xún)此集合內(nèi)的全部字段

這樣就能確定自己的語(yǔ)句有沒(méi)有起作用了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node與Python 雙向通信的實(shí)現(xiàn)代碼

    Node與Python 雙向通信的實(shí)現(xiàn)代碼

    最簡(jiǎn)單粗暴的通信方式是 Nodejs調(diào)用一下 Python 腳本,本文詳細(xì)介紹了Nodejs與Python 雙向通信的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Nodejs高擴(kuò)展性的模板引擎 functmpl簡(jiǎn)介

    Nodejs高擴(kuò)展性的模板引擎 functmpl簡(jiǎn)介

    本文給大家分享的是一款nodejs高擴(kuò)展性的模板引擎functmpl的簡(jiǎn)單介紹以及用法詳解,有需要的小伙伴可以參考下
    2017-02-02
  • Node.js中的模塊化,npm包管理器詳解

    Node.js中的模塊化,npm包管理器詳解

    這篇文章主要介紹了node模塊與npm包管理工具,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09
  • Node.js項(xiàng)目依賴(lài)問(wèn)題的詳細(xì)解決步驟

    Node.js項(xiàng)目依賴(lài)問(wèn)題的詳細(xì)解決步驟

    在現(xiàn)代前端開(kāi)發(fā)中,Node.js 和 npm 是不可或缺的工具,然而,隨著項(xiàng)目的迭代和依賴(lài)包的更新,我們常常會(huì)遇到依賴(lài)沖突、構(gòu)建失敗等問(wèn)題,本文將通過(guò)一個(gè)實(shí)際案例,詳細(xì)講解如何解決 Node.js 項(xiàng)目中的依賴(lài)問(wèn)題,包括升級(jí) Node.js 和 npm、替換過(guò)時(shí)的依賴(lài)包、修復(fù)構(gòu)建錯(cuò)誤等
    2025-02-02
  • 使用node.js對(duì)音視頻文件加密的實(shí)例代碼

    使用node.js對(duì)音視頻文件加密的實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了使用node.js對(duì)音視頻文件加密的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-08-08
  • Node.js?模塊的加載邏輯你了解嘛

    Node.js?模塊的加載邏輯你了解嘛

    這篇文章主要為大家介紹了Node.js?模塊的加載邏輯,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • node.js require() 源碼解讀

    node.js require() 源碼解讀

    學(xué)習(xí) Node.js ,必學(xué)如何使用 require 語(yǔ)句。本文通過(guò)源碼分析,詳細(xì)介紹 require 語(yǔ)句的內(nèi)部運(yùn)行機(jī)制,幫你理解 Node.js 的模塊機(jī)制
    2015-12-12
  • Node.js實(shí)現(xiàn)用戶(hù)評(píng)論社區(qū)功能(體驗(yàn)前后端開(kāi)發(fā)的樂(lè)趣)

    Node.js實(shí)現(xiàn)用戶(hù)評(píng)論社區(qū)功能(體驗(yàn)前后端開(kāi)發(fā)的樂(lè)趣)

    這篇文章主要介紹了Node.js實(shí)現(xiàn)用戶(hù)評(píng)論社區(qū)(體驗(yàn)前后端開(kāi)發(fā)的樂(lè)趣) ,需要的朋友可以參考下
    2019-05-05
  • nodejs使用socket5進(jìn)行代理請(qǐng)求的實(shí)現(xiàn)

    nodejs使用socket5進(jìn)行代理請(qǐng)求的實(shí)現(xiàn)

    這篇文章主要介紹了nodejs使用socket5進(jìn)行代理請(qǐng)求的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • nvm使用use命令失效問(wèn)題解決方法

    nvm使用use命令失效問(wèn)題解決方法

    這篇文章主要給大家介紹了關(guān)于nvm使用use命令失效問(wèn)題的解決方法,nvm是一個(gè)類(lèi)似于版本管理工具的軟件,它可以輕松地在同一臺(tái)計(jì)算機(jī)上管理多個(gè)不同的node.js版本,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

长丰县| 江城| 诸城市| 葫芦岛市| 四川省| 罗田县| 花垣县| 凤阳县| 上虞市| 凤城市| 田阳县| 常山县| 左权县| 濮阳市| 怀来县| 遂溪县| 寿阳县| 绩溪县| 阳东县| 盐源县| 宝兴县| 岚皋县| 镇沅| 饶平县| 子长县| 磴口县| 天津市| 福州市| 仙居县| 介休市| 昂仁县| 无极县| 板桥市| 汾阳市| 汉沽区| 乃东县| 思南县| 拜城县| 西昌市| 招远市| 常州市|