关于node.js连接MongoDB数据库的2种方法

这几天一直在学习mongdb的基础知识,跟着网上大神的脚步(代码)去模拟连接mongodb数据库,下面这篇文章就给大家总结介绍了node.js连接mongodb数据库的2种方法教程,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

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数据库我们有两种方法可选择:

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

使用字符串进行连接;

1、通过client对象连接到MongoDB

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

创建MongoClient对象实例的语法:

MongoClient( server, options );

登录后复制

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

关于node.js连接MongoDB数据库的2种方法

如上图所示,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对象的选项,如下:

关于node.js连接MongoDB数据库的2种方法

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

关于node.js连接MongoDB数据库的2种方法

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

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

MongoClient.connect(connString, options, callback)

登录后复制

connString字符串的语法如下:

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

登录后复制

MongoClient连接字符串组件:

选 项 说 明

mongodb://指定字符串使用mongodb的连接格式username验证时使用的用户名。可选password身份验证时使用的密码。可选hostMongoDB服务器主机名或者域名。它可以是多个host:port组合来连接多个MongoDB服务器。 例如:mongodb://host1:270017, host2://270017, host3:270017/testDBport连接MongoDB服务器时使用的端口。默认值是27017database要连接的数据库的名字。 默认为adminoptions连接时所使用的选项的键值对。可以在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('连接已经关闭!');       });      }});

登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

使用Nodejs连接mongodb数据库的实现

使用Nodejs连接mongodb数据库的实现

以上就是关于node.js连接MongoDB数据库的2种方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2747849.html

(0)
上一篇 2025年3月8日 04:30:47
下一篇 2025年3月8日 04:30:55

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • node.js下LDAP查询的介绍

    这篇文章主要介绍了node.js下LDAP查询实例分享的相关资料,需要的朋友可以参考下 目标: 从一个LDAP Server获取uid=kxh的用户数据 LDAP地址为:ldap://10.233.21.116:389 在工程根目录中,先n…

    编程技术 2025年3月8日
    200
  • 关于Node.js连接postgreSQL并进行数据操作的介绍

    这篇文章就给大家介绍了关于node.js如何连接postgresql数据库,并进行数据操作的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧。 自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选 前言…

    编程技术 2025年3月8日
    200
  • 关于node.js基于fs模块对系统文件及目录进行读写操作的方法

    这篇文章主要介绍了node.js基于fs模块对系统文件及目录进行读写操作的方法,结合实例形式分析了nodejs使用fs模块针对文件与目录的读写、创建、删除等相关操作技巧,需要的朋友可以参考下 本文实例讲述了node.js基于fs模块对系统文…

    编程技术 2025年3月8日
    200
  • nodejs实现bigpipe异步加载页面的方法

    本文给大家分享的是使用nodejs结合bigpipe实现异步加载页面的方案,非常的实用,也是以后前端性能优化的一个方向,希望大家能够喜欢。 Bigpipe介绍 Facebook首创的一种减少HTTP请求的,首屏快速加载的的异步加载页面方案。…

    编程技术 2025年3月8日
    200
  • 用Node处理文件上传

    这篇文章主要介绍了关于用node处理文件上传,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前言 在Web开发中,文件上传是一个非常常见、非常重要的功能。本文将介绍如何用Node处理上传的文件。 需求分析 由于现在前后端分离…

    2025年3月8日 编程技术
    200
  • 用Node提供静态文件服务

    这篇文章主要介绍了关于用node提供静态文件服务,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前言 对于一个web应用,提供静态文件(CSS、JavaScript、图片)服务常常是必须的。本文将介绍如何做一个自己的静态文件…

    2025年3月8日
    200
  • 浏览器与NodeJS的EventLoop异同以及部分机制

    这篇文章主要介绍了关于浏览器与nodejs的eventloop异同以及部分机制,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 浏览器与NodeJS的EventLoop异同,以及部分机制 javascript 是一门单线程的脚…

    2025年3月8日 编程技术
    200
  • node爬取拉勾网数据并导出为excel文件

    这篇文章主要介绍了关于node爬取拉勾网数据并导出为excel文件,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前言 之前断断续续学习了node.js,今天就拿拉勾网练练手,顺便通过数据了解了解最近的招聘行情哈!node方…

    2025年3月8日 编程技术
    200
  • 用Node编写RESTful API接口

    这篇文章主要介绍了关于用node编写restful api接口 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 前言 本文将通过一个todo list前后端分离的小项目来讲解如何用Node创建符合RESTful风格的API接…

    2025年3月8日
    200
  • vscode搭建Typescript+React+Dva的开发环境

    这篇文章主要介绍了关于vscode搭建typescript+react+dva的开发环境,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 [ 作为2018年前端最应该学的技术 ], Typescript 确实惹火, 这两天崩崩…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论