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实现漂浮在网页右侧的qq在线客服插件示例
May 13 Javascript
JS禁用浏览器退格键实现思路及代码
Oct 29 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
May 06 Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
jQuery插件zTree实现的多选树效果示例
Mar 08 Javascript
一个可复用的vue分页组件
May 15 Javascript
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
Dec 13 Javascript
js实现时分秒倒计时
Dec 03 Javascript
原生js实现表格翻页和跳转
Sep 29 Javascript
微信小程序实现多张图片上传功能
Nov 18 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/10/09 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
JS实现清除指定cookies的方法
2014/09/20 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
Python greenlet实现原理和使用示例
2014/09/24 Python
Python常用的爬虫技巧总结
2016/03/28 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
美国在线购物频道:Shop LC
2019/04/21 全球购物
局域网定义和特性
2016/01/23 面试题
金融专业个人的自我评价
2013/10/18 职场文书
关键在于落实心得体会
2014/09/03 职场文书
计划生育证明格式范本
2014/09/12 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
员工手册董事长致辞
2015/07/29 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
Java无向树分析 实现最小高度树
2022/04/09 Javascript