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 相关文章推荐
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
Dec 07 Javascript
JavaScript实现N皇后问题算法谜题解答
Dec 29 Javascript
js简单实现Select互换数据的方法
Aug 17 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
利用jQuery中的ajax分页实现代码
Feb 25 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
小程序如何构建骨架屏
May 29 Javascript
如何提升vue.js中大型数据的性能
Jun 21 Javascript
解决ele ui 表格表头太长问题的实现
Nov 13 Javascript
JavaScript队列结构Queue实现过程解析
Mar 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 allow_url_include的应用和解释
2010/04/22 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
基于jquery的分页控件(C#)
2011/01/06 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
JavaScript中的this机制
2016/01/30 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
python中pycurl库的用法实例
2014/09/30 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python逆序打印各位数字的方法
2018/06/25 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
护理职业生涯规划书
2014/01/24 职场文书
我的梦想演讲稿
2014/04/30 职场文书
考试作弊检讨书
2014/10/21 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
Python实现老照片修复之上色小技巧
2021/10/16 Python