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 相关文章推荐
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 Javascript
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
Mar 25 Javascript
jquery tab插件精简版分享
Sep 10 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
layui实现数据分页功能(ajax异步)
Jul 27 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
Aug 03 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
分享PHP header函数使用教程
2013/09/05 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
Gird事件机制初级读本
2007/03/10 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
angularjs指令之绑定策略(@、=、&)
2017/04/13 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
2021/01/30 Vue.js
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
Python复制文件操作实例详解
2015/11/10 Python
如何将python中的List转化成dictionary
2016/08/15 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
五年级小学生评语
2014/12/26 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
售后服务质量承诺书
2015/04/29 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
Java SSM配置文件案例详解
2021/08/30 Java/Android