最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

[MongoDB学习笔记-02]Node.js连接MongoDB的两种方法

来源:懂视网 责编:小采 时间:2020-11-09 16:29:29
文档

[MongoDB学习笔记-02]Node.js连接MongoDB的两种方法

[MongoDB学习笔记-02]Node.js连接MongoDB的两种方法:MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持。MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法。 npm install mongodb @1 .4 .3 // MongoD
推荐度:
导读[MongoDB学习笔记-02]Node.js连接MongoDB的两种方法:MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持。MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法。 npm install mongodb @1 .4 .3 // MongoD

MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持。MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法。 npm install mongodb @1 .4 .3 // MongoDB Node.js驱动程序 npm install

这里写图片描述

MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持。MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法。

npm install mongodb@1.4.3 // MongoDB Node.js驱动程序
npm install mongoose@3.8.8 //mongoose模块

要从Node.js连接MongoDB数据库我们有两种方法可选择:

  1. 通过实例化mongodb模块中提供的mongodbClient类,然后使用这个实例化的对象来创建和管理mongodb连接;
  2. 使用字符串进行连接;

1、通过client对象连接到MongoDB

通过实例化一个MongoClient对象连接MongoDB数据库是最常用也是最佳的方式。

创建MongoClient对象实例的语法:

MongoClient( server, options );

server : 一个serverd对象;
options : 数据库连接选项;

这里写图片描述

如上图所示,MongoClient连接利用了后台的Server对象。这个对象的功能就是定义了MongoDB驱动程序怎么连接到服务器。

下面,看一个示例:

var MongoClient = require('mongodb').MongoClient, 
 Server = require('mongodb').server;

// 创建客户端连接对象
var client = new MongoClient( new Server('localhost', 27017, {
 socketOpations: { connectTimeoutMS: 500 },
 poolSize: 5,
 auto_reconnect: true
 }, {
 numberOfRetries: 3,
 retryMilliSeconds: 500
 }));

// 打开对服务器端MongoDB数据库的连接
client.open(function(err, client) {
 if ( err ) {
 console.log('连接失败!');
 } else {
 var db = client.db('blogdb'); // 建立到数据库blogdb的连接
 if ( db ) {
 console.log('连接成功');
 db.authenticate('username', 'pwd', function(err, result) { // 对用户数据库身份进行验证
 if ( err ) {
 console.log('数据库用户身份验证失败');
 client.close(); // 关闭对MongoDB的连接
 console.log('连接已关闭......');
 } else {
 console.log('用户身份验证通过');
 db.logout(function (err, result) { // 关闭对数据库的连接,即退出数据库
 if ( !err ) {
 console.log('退出数据库出错');
 }

 client.close(); // 关闭对MongoDB的连接
 console.log( '已关闭连接......' );
 });
 }
 });
 }
 }
});

注意: 要注销数据库,要使用数据库对象上的logout()方法。这将关闭到该数据库上的连接,你不在可以使用Db对象。例如: db.logout();而要关闭到MongoDB的连接,要在客户端连接上调用close()方法,例如: client.close()

写入关注

首先,我们在连接数据库的时候会用到一个关于写入关注级别的问题,说白了,个人理解的话就是相当于出现问题的一个处理优先顺序,你可以选择写入数据库之前是否需要你确认之类的,或者发生错误是否忽略之类的等等,如下图:

写 入 级 别 说 明
-1 网络错误被忽略
0 写确认是不必要的
1 请求写确认
2 写确认请求跨主服务器和副本集中的一个辅助服务器
majority 写确认是从副本集的主服务器请求的

用来创建MongoClient连接的Server对象的选项,如下:

这里写图片描述

用来创建MongoClient连接的数据库连接选项,如下:

这里写图片描述


2、通过一个连接字符串连接到MongoDB

这种方式要调用MongoClient类的connect( )方法。connect使用语法如下:

MongoClient.connect(connString, options, callback)

connString字符串的语法如下:

mongodb://username:password@host:port/database?opations

MongoClient连接字符串组件:

选 项 说 明
mongodb:// 指定字符串使用mongodb的连接格式
username 验证时使用的用户名。可选
password 身份验证时使用的密码。可选
host MongoDB服务器主机名或者域名。它可以是多个host:port组合来连接多个MongoDB服务器。 例如:mongodb://host1:270017, host2://270017, host3:270017/testDB
port 连接MongoDB服务器时使用的端口。默认值是27017
database 要连接的数据库的名字。 默认为admin
options 连接时所使用的选项的键值对。可以在dbOpt和serverOpt参数上指定这些选项

下面,看一个使用连接字符串方法连接MongoDB数据库的示例:

var MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://mongodb:test@localhost:27017/blogdb', {
 db: { w: 1, native_parser: false },
 server: {
 poolSize: 5,
 socketOpations: { connectTimeoutMS: 500 },
 auto_reconnect: true
 },
 replSet: {},
 mongos: {}

 }, function(err, db) {
 if ( err ) {
 console.log('连接失败!');
 } else {
 console.log('连接成功!');
 // 注销数据库
 db.logout(function(err, result) {
 if ( err ) {
 console.log('注销失败...');
 }

 db.close(); // 关闭连接
 console.log('连接已经关闭!');
 });
 }

});

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

[MongoDB学习笔记-02]Node.js连接MongoDB的两种方法

[MongoDB学习笔记-02]Node.js连接MongoDB的两种方法:MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持。MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法。 npm install mongodb @1 .4 .3 // MongoD
推荐度:
标签: 连接 学习 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top