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 相关文章推荐
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 Javascript
jQuery定义插件的方法
Dec 18 Javascript
JavaScript中闭包之浅析解读(必看篇)
Aug 25 Javascript
基于AngularJS前端云组件最佳实践
Oct 20 Javascript
JS排序之冒泡排序详解
Apr 08 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
Jul 05 Javascript
Angular 5.x 学习笔记之Router(路由)应用
Apr 08 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
Jan 16 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
May 06 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
Aug 07 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中看实例学正则表达式
2006/12/25 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php 变量定义方法
2009/06/14 PHP
PHP学习之整理字符串
2011/04/17 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python反射的用法实例分析
2018/02/11 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
python实现文本界面网络聊天室
2018/12/12 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
python实现银行实战系统
2020/02/26 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
实习自荐信
2013/10/13 职场文书
单位消防安全责任书
2014/07/23 职场文书