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 相关文章推荐
利用js对象弹出一个层
Mar 26 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
Dec 27 Javascript
JS判断移动端访问设备并加载对应CSS样式
Jun 13 Javascript
JavaScript之数组(Array)详解
Apr 01 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
对称加密与非对称加密优缺点详解
Feb 06 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
vue.js通过路由实现经典的三栏布局实例代码
Jul 08 Javascript
mpvue 如何使用腾讯视频插件的方法
Jul 16 Javascript
微信小程序实现左右列表联动
May 19 Javascript
解决Vue中 父子传值 数据丢失问题
Aug 27 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
Laravel框架查询构造器 CURD操作示例
2019/09/04 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
如何抽象一个Vue公共组件
2017/10/17 Javascript
详解js类型判断
2018/05/22 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
numpy中索引和切片详解
2017/12/15 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
python中的字符串内部换行方法
2018/07/19 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
Python爬虫教程知识点总结
2020/10/19 Python
学生实习证明模板汇总
2014/09/25 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
redis配置文件中常用配置详解
2021/04/14 Redis
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
Django基础CBV装饰器和中间件
2022/03/22 Python
Python利用FlashText算法实现替换字符串
2022/03/31 Python