Mongodb数据库连接
Mongodb数据库连接
1. 首先我们需要 在包中安装 mongodb, 使用命令: npm install mongodb; 在安装包后,我们需要引用该包;如下:
var mongo = require('mongodb');
在Node.js中,当需要连接Mongodb数据库时,首先需要创建一个Mongodb数据库所在服务器的Server对象,作用是指定需要连接的MongoDB数据库所在的服务器。
2. 创建Server对象,如下命令:
var server = new mongo.Server(host, port, [options]);
参数host: 是指定服务器所在的地址;
参数port:是指定服务器的端口号。
options参数值是一个对象,用于指定服务器需要选用的一些选项,具体的包含哪些对象可以自己百度下;这边介绍一下最常用的参数;
auto_reconnect: 该属性为布尔值,当属性值为true时,在客户端与服务器连接过程中发生错误时自动重建连接,默认为false。
3. 创建数据库为DB对象;
在MongoDB服务器对象创建成功后,需要创建一个代表MongoDB数据库的DB对象,创建方法如下:
var db = new mongo.Db(databaseName, server, [options]);
databaseName: 该参数是必须的,用于指定需要连接的数据库名;
server: 用于指定该数据库所在的服务器。
options为一个对象,参数可选的,具体的参数自己百度,这边介绍一些常用的参数。
safe: 是一个布尔值,当属性值为true时,使用getLastError命令执行数据的存取操作,该命令返回存取操作的执行结果,默认为false;
4. 数据库连接
在Db对象创建后,需要使用对象的open方法执行数据库的链接操作,该方法使用如下所示:
db.open(callback);
callback 是一个回调函数,用于指定执行数据库连接操作后返回的回调函数,回调函数指定方法如下:
function(err, db) {
}
在该回调函数中,使用二个参数,第一个参数为链接数据库失败时抛出的错误对象,第二个参数为一个Db对象,代表链接成功的数据库,当数据库连接失败时,该参数值为null;
5. 关闭数据库
当一个数据库不再需要使用时候,可以使用数据库对象的close方法关闭数据库,该方法如下所示:
db.close([forceClose], [callback]);
forceClose 参数值为一个布尔值,当该参数值为true时,强制关闭该数据库,关闭数据库后,不可再使用open方法打开该数据库。
当参数值为false,不强制关闭该数据库,可以使用该数据库对象的open方法打开该数据库。
callback 为一个函数,用于指定关闭数据库连接操作后返回的回调函数。该回调函数指定如下所示:
function (err) {}
该回调函数有一个参数值,表示的是为链接数据库失败时抛出的错误对象。
6. 监听数据库的close事件
当数据库关闭时,触发数据库的对象的close事件,可以通过监听数据库对象的close事件并指定回调函数的方法指定当关闭数据库操作执行结束时
所需要执行的处理,如下代码:
function(err, db) {}
该回调有2个参数,第一个参数为关闭数据库失败时抛出的错误对象,第二个参数值为成功关闭的数据库对象,当关闭数据库失败时该参数值为null.
下面是链接数据库的简单demo,代码如下:
package.json 代码如下:
{
"name": "mdb",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"mongodb": "^2.2.33"
}
}
在项目中的根目录下新建一个 app.js, 代码如下:
const mongo = require('mongodb');
const Server = mongo.Server;
const Db = mongo.Db;
const server = new Server('localhost', '27017', { auto_reconnect: true });
const db = new Db('dataDb', server, { safe: true });
db.open(function(err, db) {
if (err) {
throw err;
} else {
console.log('成功建立数据库连接');
db.close();
}
});
db.on('close', function(err, db) {
if (err) {
throw err;
} else {
console.log('成功关闭数据库连接');
}
});
然后在项目根目录下 执行 node app.js, 如下图所示:

注意:在安装 mongodb时候,一定是需要是 2.2.33版本的mongodb, 如果我们默认使用 npm install mongodb的话,会默认安装 ^3.0.10
这个版本的,会导致数据库连接失败;如下图所示:

Mongodb数据库连接的更多相关文章
- Linux下PHP安装配置MongoDB数据库连接扩展
Web服务器: IP地址:192.168.21.127 PHP安装路径:/usr/local/php 实现目的: 安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库 具体操作 ...
- mongodb数据库连接池(java版)
mongodb数据库接口的设计 package storm.db; import java.util.ArrayList; import com.mongodb.DB; import com.mong ...
- 吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB
本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...
- MongoDB数据库连接失败
win10下原来一直在用的MongoDB突然连接不上了,报错如下: 解决方法是:net start MongoDB重启服务
- node.js---sails项目开发(4)---配置MongoDB数据库连接
1.安装sails对mongo的依赖 npm install sails-mongo --save 2. 配置mongo连接 修改config/connections.js: module.expor ...
- nodeJS+bootstarp+mongodb整一个TODO小例子
又是一个简单的小玩意儿, 不过有个大玩意儿,就是nosql的mongodb(文件大小:130M), 你要下载一个mongdodb, 去官方网站下载 安装以后在mongodb的命令行目录下执行 mon ...
- 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)
本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法.先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...
- 不使用spring的情况下原生java代码两种方式操作mongodb数据库
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常. 主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...
- mongodb实现简单的增删改查
package mongoDB; import java.net.UnknownHostException; import java.util.ArrayList; import java.util. ...
随机推荐
- Java 快速排序法 冒泡排序法 选择排序法 插入排序法
1.快速排序的原理: 选择一个关键值作为基准值.比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的). 从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果 ...
- MEF 插件式开发之 小试牛刀
MEF 简介 Managed Extensibility Framework 即 MEF 是用于创建轻量.可扩展应用程序的库. 它让应用程序开发人员得以发现和使用扩展且无需配置. 它还让扩展开发人员得 ...
- jQuery动画切换引擎插件Velocity.js
Velocity.js 官网 Velocity.js实现弹出式相框 慕课网 极棒的jquery动画切换引擎插件Velocity.js jQ库 (function($){ // 普通调用 /*$('#d ...
- linux学习笔记-grub模式引导进入系统
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.设置系统启动盘所在位置 set root='hd0,msdosx' 2.手动加载内核驱动程序并配置root目录位置 linu ...
- js+bootstrap实现分页页码
制作page.jsp,在其他页码引入,只需把最外层的form标签的id设置为myForm: 其中 totalPages:共有多少页:totalElements:共有有多少条记录:currentPage ...
- Kotlin入门(15)独门秘笈之特殊类
上一篇文章介绍了Kotlin的几种开放性修饰符,以及如何从基类派生出子类,其中提到了被abstract修饰的抽象类.除了与Java共有的抽象类,Kotlin还新增了好几种特殊类,这些特殊类分别适应不同 ...
- 【详细】【转】C#中理解委托和事件
文章是很基础,但很实用,看了这篇文章,让我一下回到了2016年刚刚学委托的时候,故转之! 1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具 ...
- (网页)Java程序员们最常犯的10个错误(转)
转自CSDN: 1.将数组转化为列表 将数组转化为一个列表时,程序员们经常这样做: List<String> list = Arrays.asList(arr); Arrays.asLis ...
- UML类图关系图解
一.类结构 在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,以此放置类的名称.属性和方法. 其中, 一般类的类名用正常字体粗体表示,如上图:抽象类名用斜体字粗体,如User:接 ...
- docker修改容器gogs时区时间
问题描述: 公司内部搭建了一个gogs-git,是用docker部署的,但是发现提交的代码什么的时间跟服务器时间不一致 提交上去的世界是UTC时间不是中国的时间CST,相当于慢了8个小时 1.dock ...