前言
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 : 数据库连接选项;
如上图所示,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"htmlcode">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('连接已经关闭!'); }); } });总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]