mongodb初始化并使用node.js实现mongodb操作封装方法


Posted in Javascript onApril 02, 2019

mongodb的下载只要在https://www.mongodb.com/网站就能够下载

或者使用本地下载 https://3water.com/softs/590664.html

下载后安装只用一直点next就可以,注意最好使用默认路径安装到C盘,然后在任意位置建立一个文件夹用于储存你的数据库

这里我命名的是mongodbWorkspace

复制他的路径,在命令行工具(windows快捷键win+R)中,输入mongod --dbpath 你的路径,我的如下所示

mongodb初始化并使用node.js实现mongodb操作封装方法

现在你就已经初始化好了你的数据库,不用关掉它,他打开来才是开启了数据库服务,然后再新建一个命令行工具窗口

输入mongo,若出现以下窗口,代表你的连接已经成功了,这里是能够写操作mongodb的代码的

输入use yourDatabaseName =>如果你有这个数据库名,则进入,如果没有这个数据库名,则新建了这个数据库

mongodb初始化并使用node.js实现mongodb操作封装方法

现在我打开了我的VScode,新建一个终端后输入npm installmongodb下载完成后,在index.js中导入(后面会有代码)

先定义一个用于储存方法的JS文件,我命名为myFun.js,内容如下

myFun.js

//传入db环境, 集合名字,需要插入的数据,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环境, 集合名字,要修改的数据的条件,要修改的结果,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环境, 集合名字,要查询的数据的条件,要显示的字段,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环境, 集合名字,要删除数据的条件,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实现mongodb操作封装方法

这是我的运行截图,代表操作都正确了,在第二个操作窗口,大家可以use进入数据库中,输入db.yourCollectionName.find()查询此集合内的全部字段

mongodb初始化并使用node.js实现mongodb操作封装方法

这样就能确定自己的语句有没有起作用了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
漂亮的仿flash菜单,来自蓝色经典
Jun 26 Javascript
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
JavaScript 判断判断某个对象是Object还是一个Array
Jan 28 Javascript
Javascript 面向对象 继承
May 13 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
Jan 11 Javascript
js对象转json数组的简单实现案例
Feb 28 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
node.js 发布订阅模式的实例
Sep 10 Javascript
详解webpack + vue + node 打造单页面(入门篇)
Sep 23 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
Feb 14 Javascript
koa大型web项目中使用路由装饰器的方法示例
Apr 02 #Javascript
vue中v-text / v-html使用实例代码详解
Apr 02 #Javascript
Seajs源码详解分析
Apr 02 #Javascript
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 #Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
Apr 02 #Javascript
基于vue实现web端超大数据量表格的卡顿解决
Apr 02 #Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
Apr 02 #Javascript
You might like
php变量范围介绍
2012/10/15 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
js对象转json数组的简单实现案例
2014/02/28 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
JS验证不重复验证码
2017/02/10 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
Python中subprocess的简单使用示例
2015/07/28 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
python实现3D地图可视化
2020/03/25 Python
书法培训心得体会
2014/01/05 职场文书
教师队伍管理制度
2014/01/14 职场文书
七年级英语教学反思
2014/01/15 职场文书
劳动之星获奖感言
2014/02/01 职场文书
教师暑期培训感言
2014/08/15 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
音乐教师求职信范文
2015/03/20 职场文书
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL