MongodbConnectionString
本文档描述定义的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的设置,但是又不同,需要进行代码设置,这是这个代码的参数可以写在配置文件中。这次的资料查找我深刻认识到,英语是非常非常重要的工具,如果你想更深入的了解,英语是必不可少的利器。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

本文將介紹如何解決MicrosoftWord中出現的記憶體或磁碟空間不足以重新分頁或列印文件的問題。這種錯誤通常會在使用者嘗試列印Word文件時出現。如果您遇到類似的錯誤,請參考本文提供的建議來解決。記憶體或磁碟空間不足,無法重新分頁或列印此文件Word錯誤解決MicrosoftWord列印錯誤「沒有足夠記憶體或磁碟空間重新分頁或列印文件」的方法。更新MicrosoftOffice關閉佔用記憶體的應用程式更改您的預設印表機在安全模式下啟動Word重命名NorMal.dotm檔案將Word檔案儲存為另一

它是395個字,就是495個這篇文章將向您介紹如何在Word文件中加入紅線。在文件中新增紅線是指對文件進行修改,以便使用者可以清楚地查看所做的變更。這項功能在多人共同編輯一個文件時非常重要。 redline是什麼意思標示文件加紅線是指使用紅線或標註來指示文件的變更、編輯或修訂。這個術語的靈感來自於使用紅色筆在列印文件上做標記的做法。紅線批註被廣泛應用在不同場景下,如:在編輯文件時為作者、編輯和審閱人清楚地顯示建議的變更。在法律協議或合約中提出變更和修改對論文、演講等提出建設性的批評和建議。如何給W

近年來,隨著網路科技的不斷發展,我們的生活中離不開各種數位工具和網路。在處理文件時,特別是在寫作中,我們經常使用到word文件。然而,有時我們可能會遇到一個棘手的問題,那就是word文件中的超連結無法開啟。以下將就這個問題進行一番探討。首先,我們需要明確的是,超連結是指在word文件中新增的指向其他文件、網頁、目錄、書籤等的連結。當我們點擊這些連結時,我

學習Go語言文件中的os.Stdout.Write函數實現標準輸出在Go語言中,標準輸出是透過os.Stdout來實現的。 os.Stdout是一個*os.File類型的變量,它代表了標準輸出設備。為了將內容輸出到標準輸出,可以使用os.Stdout.Write函數。本文將介紹如何使用os.Stdout.Write函數實現標準輸出,並提供具體的程式碼範例。 os.

當您在Windows11/10電腦上開啟Word文件時遇到空白頁面的問題,可能需要進行修復以解決此狀況。造成這一問題的根源多種多樣,其中最普遍的原因之一是文件本身損壞。此外,Office檔案的損壞也可能導致類似的情況。因此,本文提供的修復方法可能對您有幫助。您可以嘗試使用一些工具來修復損壞的Word文檔,或嘗試將文檔轉換為其他格式再重新開啟。另外,檢查系統中的Office軟體是否需要更新也是解決此問題的方法。透過這些簡單的步驟,您可能能夠解決Word文件空白開啟的Word文件在Win

如何實現Workerman文件的基本使用方法簡介:Workerman是一個高效能的PHP開發框架,它可以幫助開發者輕鬆建立高並發的網路應用程式。本文將介紹Workerman的基本使用方法,包括安裝和設定、建立服務和監聽連接埠、處理客戶端請求等。並給出相應的程式碼範例。一、安裝並設定Workerman在命令列中輸入以下命令來安裝Workerman:c

Word文件是我們日常工作和學習中使用頻率較高的應用程式之一。在處理文件時,有時會遇到需要將兩頁內容合併為一頁的情況。本文將詳細介紹在Word文件中如何將兩頁合併為一頁,幫助讀者更有效率地處理文件排版。在Word文件中,將兩頁合併為一頁的操作通常用於節省紙張和列印成本,或為了使文件更加緊湊和整潔。以下是合併兩頁為一頁的具體步驟:第一步:開啟需要操作的Word

Java文件解讀:StringBuilder類別的substring()方法詳細介紹引言:在Java程式設計中,字串的處理是非常常見的操作之一。而Java提供了一系列關於字串處理的類別和方法,其中StringBuilder類別是常用於頻繁字串操作的選擇。在StringBuilder類別中,substring()方法是一個非常有用的方法,用來截取字串的子字串。本文將
