本文档描述定义的URI格式之间,以及应用程序和MongoDB实例的连接,参考官方MongoDB的驱动。 原文 :http://docs.mongodb.org/manual/reference/connection-string/#connections-connection-options 标准连接字符串格式 本节描述的标准格式连接MongoDBURI用于
本文档描述定义的URI格式之间,以及应用程序和MongoDB实例的连接,参考官方MongoDB的驱动。
原文 :http://docs.mongodb.org/manual/reference/connection-string/#connections-connection-options
标准连接字符串格式
本节描述的标准格式连接MongoDBURI用于连接MongoDB数据库服务器。所有官方MongoDB的格式都是相同的驱动程序。对于驱动和驱动的链接文档的列表,看到MongoDB驱动和客户端库(MongoDB Drivers and Client Libraries)
以下是标准的链接方式
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
参数说明:
mongodb://字符串链接的标准格式
username:password@
可选的,一般默认是没有名称和密码的,只有在MongoDB服务器使用了身份验证时才出现。
/database
可选的,如果链接的字符串中包含了验证身份的用户名和密码,则数据库是必须要有的。若没有包含数据库名称,默认是链接admin的数据库
?options
链接特定选项。如果没有指定链接特定的数据库名称,必须在主机名后面加"/",并且在optin的前面以问号形式开头"?".
实例:
mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test
继续查找发现了另一篇文章。只做重点翻译:
内部认证
当你只需要一个用户,它在连接字符串中指定这是可能的。
var connectionString ="mongodb://user1:password1@localhost/test"; var mongoClient = newMongoClient(connectionString); 注意: 如果你不指定一个数据库连接字符串,默认的数据库是“admin”数据库.
看到这里心里狂喜,终于可以进行配置文件的设置了,但是发现c#的驱动并不支持这样的编写,于是又是一个失落。
链接原理:
链接数据库,官方提供了两种线程安全的方式,一个是MongoClient, 另一个是MongoServer,都是线程安全的,自动进行锁定的。
利用服务端类链接数据库
// Create server settings to passconnection string, timeout, etc.
MongoServerSettingssettings =newMongoServerSettings();
settings.Server = new MongoServerAddress("localhost",27017);
// Create server object tocommunicate with our server
MongoServer server = new MongoServer(settings);
// Get our databaseinstance to reach collections and data
var database = server.GetDatabase("MessageDB");
客户端类链接数据库的实例
var client = new MongoClient("mongodb://localhost:27017"); var server = client.GetServer(); var database = server.GetDatabase("foo"); var collection = database.GetCollection("bar");
以上的两种链接方式我都做个测试。并且都可以用。这是一般更倾向于客户端的链接方式。
通过查找Api,发现客户端的类的构造方法还有其他的
public MongoClient(); public MongoClient(MongoClientSettingssettings); public MongoClient(MongoUrl url); public MongoClient(stringconnectionString);
我们通常用的是string字符串的链接,这次对MongoClientSettings进行的深度的查找调用发MongoClientSettings 是可以进行更多的参数设置的,和Option类似,于是找到了解决方案,通过配置文件对MongoClientSettings进行参数设置。
默认情况下,最大链接池是100,最小是0,数据库链接是本地的。下面我们看测试
MongoClientSettings settingsclient = newMongoClientSettings();//实例化客户端设置类
红色划线部分是默认的参数,当我们不填写任何参数,驱动程序是进行默认的参数设置的。
通过客户端类的参数设置可以发现已经有所不同了。
那代码是如何编写的呢
#region 读取配置文件信息 //获取链接池大小 int connectionPool =Convert.ToInt32(ConfigurationManager.AppSettings["connectionPool"]); int minpool =Convert.ToInt32(ConfigurationManager.AppSettings["minpool"]); string hostname =ConfigurationManager.AppSettings["hostname"]; Int32 port =Convert.ToInt32(ConfigurationManager.AppSettings["port"]); string database =ConfigurationManager.AppSettings["database"]; #endregion if (String.IsNullOrEmpty(ConnectionString)) { throw newArgumentNullException("Connection string not found."); } #region 客户端类设置 MongoServerAddress ipaddress = newMongoServerAddress(hostname, port);//设置服务器的ip和端口 MongoClientSettings settingsclient= new MongoClientSettings();//实例化客户端设置类 settingsclient.Server =ipaddress;//端口赋值 settingsclient.MaxConnectionPoolSize = connectionPool; settingsclient.MinConnectionPoolSize = minpool; settingsclient.ConnectionMode =0;//链接模式设置 // MongoUrl url=newMongoUrl(ConnectionString); MongoClient client = newMongoClient(settingsclient);//调用客户端类构造函数设置参数 MongoServer server =client.GetServer();//服务端获取客户端参数 DB =server.GetDatabase(database);//获取数据库名称 #endregion
刚开始我也是不知道如何进行参数赋值,只是在一步步的操作中发现参数是有类型的,一些类型是一些引用类,就需要实例化赋值。所以才有最后看起来很多的参数。
配置文件中的信息
<addkey="connectionPool" value="1000"/><!--连接池设置--> <add key="hostname"value="192.168.24.249"/> <add key="port"value="27017"/> <add key="database"value="DB3"/> <add key="minpool"value="300"/> </appSettings>
当然了客户端的方式写出来了。服务端也就容易的很多了
#region 服务端链接设置 MongoServerSettings mongoSetting =new MongoServerSettings(); //mongoSetting.Server = newMongoServerAddress(ConnectionString, connectionPool); mongoSetting.MaxConnectionPoolSize= connectionPool;//设定最大连接池 mongoSetting.Server = newMongoServerAddress(hostname, port); MongoServer server =MongoServer.Create(mongoSetting);//创建连接数据文件 DB = server.GetDatabase(database); #endregion
认识:
由于该数据库的参考资料比较少,所以多数资料还是外文,刚开始看到很是惊讶,如此多的英语能看的明白么。但是只要心境平静,一切都是可以的。通过基本的查找和一些外文论坛了解的基本的设置。很像SQL的设置,但是又不同,需要进行代码设置,这是这个代码的参数可以写在配置文件中。这次的资料查找我深刻认识到,英语是非常非常重要的工具,如果你想更深入的了解,英语是必不可少的利器。

mysqldiffersfromothersqldialectsinsyntaxforlimit, 자동 점유, 문자열 comparison, 하위 쿼리 및 퍼포먼스 앤 알리 분석 .1) mysqluse Slimit, whilesqlSerVerusestOpandoracleSrownum.2) MySql'Sauto_incrementContrastSwithPostgresql'serialandoracle '

MySQL 파티셔닝은 성능을 향상시키고 유지 보수를 단순화합니다. 1) 큰 테이블을 특정 기준 (예 : 날짜 범위)으로 작은 조각으로 나누고, 2) 데이터를 독립적 인 파일로 물리적으로 나눌 수 있습니다.

MySQL에서 권한을 부여하고 취소하는 방법은 무엇입니까? 1. 보조금 명세서를 사용하여 grantallprivilegesondatabase_name.to'username'@'host '와 같은 부여 권한; 2. Revoke 문을 사용하여 Revokeallprivilegesondatabase_name.from'username'@'host '와 같은 권한을 취소하여 허가 변경의 적시에 의사 소통을 보장하십시오.

InnoDB는 거래 지원 및 높은 동시성이 필요한 응용 프로그램에 적합한 반면, MyISAM은 더 많은 읽기와 덜 쓰는 응용 프로그램에 적합합니다. 1. INNODB는 전자 상거래 및 은행 시스템에 적합한 거래 및 은행 수준의 자물쇠를 지원합니다. 2. Myisam은 블로깅 및 컨텐츠 관리 시스템에 적합한 빠른 읽기 및 색인을 제공합니다.

MySQL에는 Innerjoin, Leftjoin, RightJoin 및 FullouterJoin의 네 가지 주요 조인 유형이 있습니다. 1. 결합 조건을 충족하는 두 테이블의 모든 행을 반환합니다. 2. Leftjoin 오른쪽 테이블에 일치하는 행이 없더라도 왼쪽 테이블의 모든 행을 반환합니다. 3. RightJoin은 LeftJoin과 상반되며 오른쪽 테이블의 모든 행을 반환합니다. 4. FULLOUTERNOIN은 조건을 충족 시키거나 충족하지 않는 두 테이블의 모든 행을 반환합니다.

mysqloffersvariousStorageEngines, 각각의 everitedforentUsecases : 1) innodbisidealforapplicationsneedingAcidCoInceandHighConcurrency, 지원 트랜잭션 및 foreignKeys.2) myIsAmisbestforread-heverworkloads, memoryengineis

MySQL의 일반적인 보안 취약점에는 SQL 주입, 약한 암호, 부적절한 권한 구성 및 업데이트되지 않은 소프트웨어가 포함됩니다. 1. 전처리 명령문을 사용하여 SQL 주입을 방지 할 수 있습니다. 2. 강력한 비밀번호 전략을 사용하여 약한 암호는 피할 수 있습니다. 3. 정기적 인 검토 및 사용자 권한 조정을 통해 부적절한 권한 구성을 해결할 수 있습니다. 4. Unupdated 소프트웨어는 MySQL 버전을 정기적으로 확인하고 업데이트하여 패치 할 수 있습니다.

느린 쿼리 로그를 활성화하고 임계 값을 설정하여 MySQL에서 느린 쿼리를 식별 할 수 있습니다. 1. 느린 쿼리 로그를 활성화하고 임계 값을 설정하십시오. 2. 느린 쿼리 로그 파일을보고 분석하고 심층 분석을 위해 MySQLDumpSlow 또는 PT-Query 소수성과 같은 도구를 사용하십시오. 3. 인덱스 최적화, 쿼리 재 작성 및 select*의 사용을 피함으로써 느린 쿼리 최적화를 달성 할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
