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判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
Mar 30 Javascript
JS实现简单抖动效果
Jun 01 Javascript
原生JS 购物车及购物页面的cookie使用方法
Aug 21 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
浅谈小程序 setData学问多
Feb 20 Javascript
微信小程序云开发实现增删改查功能
May 17 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
图解上海144收音机
2021/03/02 无线电
php中的观察者模式
2010/03/24 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
JavaScript 参考教程
2006/12/29 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
详解参数传递四种形式
2015/07/21 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
医学生自我评价
2014/01/27 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
大专学生求职信
2014/07/04 职场文书
公司员工安全协议书
2014/11/21 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
小升初自荐信范文
2015/03/05 职场文书