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 相关文章推荐
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
20个最新的jQuery插件
Jan 13 Javascript
jQuery事件绑定.on()简要概述及应用
Feb 07 Javascript
js时间戳格式化成日期格式的多种方法
Nov 11 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
jQuery插件Validate实现自定义校验结果样式
Jan 18 Javascript
js 获取站点应用名的简单实例
Aug 18 Javascript
AngularJS动态生成div的ID源码解析
Aug 29 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
Feb 03 Javascript
angular4中引入echarts的方法示例
Jan 29 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
Oct 31 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中Smarty模板初体验
2011/08/08 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
php查询内存信息操作示例
2019/05/09 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
Jquery $when done then的用法详解
2016/05/20 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
Angular.js中定时器循环的3种方法总结
2017/04/27 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
公司司机岗位职责范本
2014/03/03 职场文书
求职自荐信怎么写
2014/03/06 职场文书
《金子》教学反思
2014/04/13 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
淘宝好评语句大全
2014/12/31 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers