mongodb初始化并使用node.js实现mongodb操作封装方法

 更新时间:2019年04月02日 15:27:13   作者:JobsOfferings  
这篇文章主要介绍了mongodb初始化并使用node.js实现mongodb操作封装方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

mongodb的下载只要在https://www.mongodb.com/网站就能够下载

或者使用本地下载 https://www.jb51.net/softs/590664.html

下载后安装只用一直点next就可以,注意最好使用默认路径安装到C盘,然后在任意位置建立一个文件夹用于储存你的数据库

这里我命名的是mongodbWorkspace

复制他的路径,在命令行工具(windows快捷键win+R)中,输入mongod --dbpath 你的路径,我的如下所示

现在你就已经初始化好了你的数据库,不用关掉它,他打开来才是开启了数据库服务,然后再新建一个命令行工具窗口

输入mongo,若出现以下窗口,代表你的连接已经成功了,这里是能够写操作mongodb的代码的

输入use yourDatabaseName =>如果你有这个数据库名,则进入,如果没有这个数据库名,则新建了这个数据库

现在我打开了我的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);
  });
})

这是我的运行截图,代表操作都正确了,在第二个操作窗口,大家可以use进入数据库中,输入db.yourCollectionName.find()查询此集合内的全部字段

这样就能确定自己的语句有没有起作用了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Node与Python 双向通信的实现代码

    Node与Python 双向通信的实现代码

    最简单粗暴的通信方式是 Nodejs调用一下 Python 脚本,本文详细介绍了Nodejs与Python 双向通信的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Nodejs高扩展性的模板引擎 functmpl简介

    Nodejs高扩展性的模板引擎 functmpl简介

    本文给大家分享的是一款nodejs高扩展性的模板引擎functmpl的简单介绍以及用法详解,有需要的小伙伴可以参考下
    2017-02-02
  • Node.js中的模块化,npm包管理器详解

    Node.js中的模块化,npm包管理器详解

    这篇文章主要介绍了node模块与npm包管理工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • Node.js项目依赖问题的详细解决步骤

    Node.js项目依赖问题的详细解决步骤

    在现代前端开发中,Node.js 和 npm 是不可或缺的工具,然而,随着项目的迭代和依赖包的更新,我们常常会遇到依赖冲突、构建失败等问题,本文将通过一个实际案例,详细讲解如何解决 Node.js 项目中的依赖问题,包括升级 Node.js 和 npm、替换过时的依赖包、修复构建错误等
    2025-02-02
  • 使用node.js对音视频文件加密的实例代码

    使用node.js对音视频文件加密的实例代码

    本文通过实例代码给大家介绍了使用node.js对音视频文件加密的方法,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-08-08
  • Node.js 模块的加载逻辑你了解嘛

    Node.js 模块的加载逻辑你了解嘛

    这篇文章主要为大家介绍了Node.js 模块的加载逻辑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • node.js require() 源码解读

    node.js require() 源码解读

    学习 Node.js ,必学如何使用 require 语句。本文通过源码分析,详细介绍 require 语句的内部运行机制,帮你理解 Node.js 的模块机制
    2015-12-12
  • Node.js实现用户评论社区功能(体验前后端开发的乐趣)

    Node.js实现用户评论社区功能(体验前后端开发的乐趣)

    这篇文章主要介绍了Node.js实现用户评论社区(体验前后端开发的乐趣) ,需要的朋友可以参考下
    2019-05-05
  • nodejs使用socket5进行代理请求的实现

    nodejs使用socket5进行代理请求的实现

    这篇文章主要介绍了nodejs使用socket5进行代理请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • nvm使用use命令失效问题解决方法

    nvm使用use命令失效问题解决方法

    这篇文章主要给大家介绍了关于nvm使用use命令失效问题的解决方法,nvm是一个类似于版本管理工具的软件,它可以轻松地在同一台计算机上管理多个不同的node.js版本,需要的朋友可以参考下
    2023-07-07

最新评论