zoukankan      html  css  js  c++  java
  • 1.从Node.js链接到MongoDB

    MongoDB采用了MongoDB Node.js驱动程序作为标准。

    1.安装MongoDB驱动

    npm install mongoDB
    npm install mongoose

    require('mongodb')可以访问mongodb模块

    2.从Node.js连接到MongoDB

    可以通过打开到MongoDB服务器的连接开始从Node.js应用程序访问MongoDB.

    连接用来:创建,更新存取MongoDB数据库中的接口

    访问MongoDB最佳方法:通过mongodb模块中的MongoClient类。

    1)创建MongoClient对象的一个实例,通过该对象创建和管理MongoDB的连接。

    2)使用连接字符串进行连接

    2.1.写入关注

    连接和更新MongoDB服务器上的数据前,要决定连接上实现什么级别的写入关注。

    write concern 指的是:在报告写操作成功的时候,MongoDB连接提供的保证

    2.2.了解Server对象

    MongoClient连接利用了在后台的Server对象。这个对象定义了MongoDB驱动程序应该怎样连接到服务器。

    Server对象包含:创建连接时所用的主机,端口,池的大小,以及套接字的超时值的信息。

    Server对象选项:readPreference ssl poolSize socketOptions auto_reconnect

    2.3.通过client对象连接到MongoDB

    使用MongoClient对象连接到MongoDB涉及创建客户端的一个实例,打开到数据库的连接,以及如果需要,验证到数据库,然后根据需要处理注销和关闭。

    MongoClient(Server,options)
    

    Server为第一个参数,第二个参数规定了数据库的连接选项

    var client=new MongoClient(new Server('localhost',27017,{poolSize:5}),retryMiliSeconds:500);
    

    一旦创建了MongoClient,可以通过open(callback)打开到服务器的MongoDB数据库的连接。

    (新版本废除了client.open()方法)

    client.open(function(err,client){...})
    

    连接到特定的数据库,需要在client对象上使用db(databasename)方法创建数据库实例。可以使用数据库连接选项,创建可用于访问特定数据库的集合中的db对象实例。如果启用了身份验证,在尝试访问前:

    db.authenticate(username,password,callback)验证到数据库

    var db=client.db("testDB");
    db.authenticate("dbadmin","test",function(err,results){...})
    

    要注销数据库,使用对象上的logout()方法。将关闭到数据库的连接

    db.logout();
    

    要关闭到MongoDB的连接,在客户端上调用close()

    client.close()
    

    2.4.通过连接字符串连接到MongoDB

    可以使用一个简单的连接字符串创建,打开,并验证到数据库的连接。

    用于连接到数据库的Server和MongoClient选项在后台生成。

    MongoClient.connect(connString,options,callback)
    

    connString字符串的语法如下:

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

    options可以包含db,server,rplSet和mongos属性的一个对象  

    3.在MongoDB Node.js驱动程序中的对象

    MongoDB Node.js驱动程序使用了大量的结构化对象与数据库进行交互。  

    Db对象:提供对数据库的访问。(连接,添加用户,访问集合) 数据库创建,Db对象被创建

    Admin对象:对MongoDB数据库执行管理职能。专门代表到admin数据库的连接

    Collection对象:数据库的集合。可以使用Collection对象访问集合中的条目,添加文档,查询文档。。

    4.访问和操作数据库

    提供了从Node.js应用程序创建并管理数据库的能力。

    列出数据库

    var MongoClient=require('mongodb').
    

    4.1.列出数据库  

    要列出一个系统中的数据库,需要在Admin对象上使用listDatabases()

    数据库列表在回调函数的第二个参数中返回,并且是数据库对象的一个简单的数组。

    var MongoClient=require('mongodb').MongoClient;
    MongoClient.connect("mongodb://localhost/admin",function(err,db){
       var admainDB=db.admin();
       adminDB.listDatabases(function(err,databases){
          console.log("before add database list: ");
          console.log(database);
       })
    })
    

    4.2.创建数据库

    MongoClient连接Db对象上的Db()方法创建一个新的Db对象实例。调用Db对象实例上的createCollection()来创建数据库。

    新版直接用 var newDB=db.db("newDB");

    4.3.删除数据库

    Db实例的dropDatabase()方法删除  

    var MongoClient=require('mongodb').MongoClient;
    MongoClient.connect("mongodb://localhost/",function(err,db){
    	var adminDB=db.admin();
    	adminDB.listDatabases(function(err,databases){
    		console.log("before add database list:");
    		console.log(databases);
    	});
    	var newDB=db.db("newDB");
    	newDB.createCollection("newCollection",function(err,collection){
    		if(!err){
    			console.log("new database and collection created");
    			adminDB.listDatabases(function(err,databases){
    				console.log("after add database list:");
    				console.log(databases);		
    				db.db("newDB").dropDatabase(function(err,results){
    					if(!err){
    						console.log("database dropped");
    						setTimeout(function(){
    							adminDB.listDatabases(function(err,results){
    						    	var found=false;
    						    	for(var i=0;i<results.databases.length;i++){
    						    		if(results.databases[i].name=="newDB")
    						    			found=true;
    						    	}
    						    	if(!found){
    						    		console.log('after delete database list: ');
    						    		console.log(results);
    						    	}
    						    	db.close();
    							})
    						},1500)
    					}
    				})		
    			})
    		}
    	})
    })
    

    4.5.获取MongoDB服务器的状态

    admin对象的另一大特性,具有获取有关MongoDB的服务器状态信息的能力。

    主机名,版本,运行时间,打开的游标

    Admin对象的serverStatus()方法

      

     

      

      

      

      

  • 相关阅读:
    CentOS中的环境变量配置文件
    SCVMM中Clone虚拟机失败显示Unsupported Cluster Configuration状态
    Windows Server 2012 虚拟化实战:SCVMM的安装和部署
    Windows Server 2012 虚拟化实战:网络(二)
    x86.zip
    音视频处理之PS封装的介绍与使用20180928
    界面编程之QT的数据库操作20180801
    界面编程之QT的线程20180731
    界面编程之QT的Socket通信20180730
    界面编程之QT的文件操作20180729
  • 原文地址:https://www.cnblogs.com/weizaiyes/p/6069180.html
Copyright © 2011-2022 走看看