mongodb初始化并使用node.js实现mongodb操作封装
mongodb的下载只要在https://www.mongodb.com/网站就能够下载
下载后安装只用一直点next就可以,注意最好使用默认路径安装到C盘,然后在任意位置建立一个文件夹用于储存你的数据库
这里我命名的是mongodbWorkspace
复制他的路径,在命令行工具(windows快捷键win+R)中,输入mongod --dbpath 你的路径,我的如下所示

现在你就已经初始化好了你的数据库,不用关掉它,他打开来才是开启了数据库服务,然后再新建一个命令行工具窗口
输入mongo,若出现以下窗口,代表你的连接已经成功了,这里是能够写操作mongodb的代码的
输入use yourDatabaseName =>如果你有这个数据库名,则进入,如果没有这个数据库名,则新建了这个数据库

现在我打开了我的VScode,新建一个终端后输入npm install mongodb下载完成后,在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()查询此集合内的全部字段

这样就能确定自己的语句有没有起作用了
mongodb初始化并使用node.js实现mongodb操作封装的更多相关文章
- MongoDB学习(2)—Node.js与MongoDB的基本连接示例
前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务,在test数据库中插入一条实例数据: db. ...
- Node.js和MongoDB - MongoJS入门
第一次尝试翻译外国牛人的博文,希望大家喜欢. 本文源码详见:https://github.com/njaulj/mongojs 一点都不夸大的说,近年来node.js和mongodb的确是大放异彩,在 ...
- Node.js与MongoDB的基本连接示例
Node.js与MongoDB的基本连接示例 前提 已经安装了node.js和MongoDB,本文使用的node.js是v0.12.0,MongoDB是3.0.0. 初始化数据 启动MongoDB服务 ...
- Node.js 中MongoDB的基本接口操作
Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...
- 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)
这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000005040834 突然想起来我这个博客冷落了好多年了,也该更新一下,呵 ...
- windows下安装mongodb以及node.js连接mongodb
一.MongoDB 下载 下载地址 https://www.mongodb.com/download-center#community 选择windows版下载,然后安装. 二.安装完毕后创建数据 ...
- 以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)
第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售 ...
- node.js+express+mongodb
主要是想用node.js链接mongodb,用的是mongoose.用ejs引擎,扩展到.html比较容易 小例子结构简单,框架清晰. 提交方法 路径 方法 作用 get add post a ...
- Node.js+websocket+mongodb实现即时聊天室
ChatRoom Node.js+websocket+mongodb实现即时聊天室 A,nodejs简介:Node.js是一个可以让javascript运行在服务器端的平台,它可以让javascrip ...
随机推荐
- c#的装箱和拆箱及值类型和引用类型
装箱:它允许根据值类型创建一个对象,然后使用对这新对象的一个引用. int i = 5; object o = i; int j = (int)o; 装箱:运行时将在堆上创建一个包含值5的对象(它是一 ...
- oracle in 多个字段
oracle 使用in的时候使用多个字段 这个也是刚需啊. 最近有个需求,在一堆商品里面过滤出一些特定的商品类型.供应商的商品(同时满足). 需要的数量不多,但是可能会变化,所以做了两个配置表. 商品 ...
- 2019.01.22 51nod 1203 JZPLCM(线段树+链表)
传送门 一道很有意思的题. 题意简述:给一个数列,多次询问区间的lcmlcmlcm,答案对1e9+71e9+71e9+7取模. 思路:首先考虑到一个区间的lcmlcmlcm就是其中所有出现过的素数的最 ...
- Spring-WebSocket
WebSocket Sockjs Stoup (消息订阅发布) 添加依赖 <!-- 添加依赖 --> <dependencies> <dependency> < ...
- 学习刘伟择优excel视频
for each 字符串函数: 默认参数,在子函数中必须要有默认值. 在工作表输入时,F9的功能是把区域编程数组,shift+ctrl+enter功能是把数组分开填入单元格. 创建数组: 1. 2. ...
- 动态样式CSS
<link>标签可以把外部css样式引入HTML页面 <style>元素用于指定嵌入的样式 通过修改link的href属性,改变引入的css样式 function loadSt ...
- 很实用的linux 上的svn安装和svnserver 的重启
虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装 #yu ...
- 工作中的小tips(持续更新)
1.在工作的时候一定要留下痕迹,这样即使乙方抵赖,或者说领导认为你没干活的时候留下证据(电话没有微信,邮件之类的文字类有效果) 2.每天晚上下班之前将一天的工作总结一下,把第二天的工作给罗列出来,以方 ...
- Mysql之数据库操作
数据库操作: 链接数据库: mysql -uroot -p masql -uroot -pmysql 退出数据库: exit/quit/ctrl + d sql语句最后需要分号结尾: 查看时间: ...
- hide handkerchief
Problem Description The Children’s Day has passed for some days .Has you remembered something happen ...