Heim Datenbank MySQL-Tutorial MongoDB C# 驱动

MongoDB C# 驱动

Jun 07, 2016 pm 05:56 PM
mongodb 驱动

读书笔记 C# Driver 之前看了Bson类库,现在学习C# Driver Thread safety(多线程问题) 只有少部分的C# Driver类是多线程安全的。比如MongoClient,MongoServer,MongoDatabase, MongoCollection 以及MongoGridFS。一般常用的类存在多线程问题,包括MongoCurs

读书笔记

C# Driver

之前看了Bson类库,现在学习C# Driver

Thread safety(多线程问题)

只有少部分的C# Driver类是多线程安全的。比如MongoClient,MongoServer,MongoDatabase, MongoCollection 以及MongoGridFS。一般常用的类存在多线程问题,包括MongoCursor以及Bson类库中的所有类(除了其中的BsonSymbolTable是线程安全的)。

所有的类的静态属性值和函数方法都不会引起多线程问题。

MongoClient类

这个类提供使用MongoDB server的基本对象。与MongoDB server服务进行链接的时候,client自动进行连接。(使用了连接池来进行更有效的连接)

在连接一个副本集的时候,有且只用一个MongoClient实例。

When you are connecting to a replica set you will still use only one instance of MongoClient, which represents the replica set as a whole. The driver automatically finds all the members of the replica set and identifies the current primary.

这个类的实例不会引起多线程问题。

除非其他设置,在默认设置情况下,所有操作需要一个WriteConcern,一个写入确定语句。另外,默认情况下,所有的写操作会锁定,直到server知道要进行写操作。

Connection strings

最简单的数据库连接是使用Connection string。标准的Connection string如下:

mongodb://[username:password@]hostname[:port][/[database][?options]]

在使用认证的mongodb服务器上,username和password必须填写。

port号码是可选的。默认的是27017.

如果要连接多个服务器,可以直接填写多个服务器名(以及需要的端口号),并且以‘,’分割。如下:

mongodb://server1,server2:27017,server2:27018

上面这段connection string 连接了三个数据库服务,由于多数据库服务是模糊不清的,不能分辨服务是否复本集,或者是多数据库服务。drive驱动会跳过connection string的语法检查,直接连接进数据库服务器,让server自己检查他们的类别。还有一些办法在连接的时候就指定数据服务器的类别,就是在connection string里面直接描述。如下:

mongodb://server1,server2:27017,server2:27018/?connect=replicaset

可用的连接模式包括:automatic (默认), direct, replica set, 以及shardrouter。连接的规则如下:

1、如果指定了某种连接模式,则直接使用否则使用默认的automatic。

2、如果在connection string中有replica set name,则使用replica set模式

3、如果connection string中仅有一个服务器,则使用direct模式

4、另外,连接服务之后,服务决定连接的模式

注意:如果有多服务器列表连接,其中有一个是复本集的一个,而其他不是,则连接模式将成为non-deterministic(未决定)。确定connection string中没有混合服务类型。

当连接模式指定成为replica set,美国服务器,但是driver接口还是会找到primary服务器,即使该服务器不在connection连接列表中。直到connection列表中的一个服务器的回应(这个回应包括replica set以及现有的primary服务)。另外,即使在初始化语句完成之后,其他次级服务器也会被发现,并且自动加入到混合集群。这样,香港服务器,如果你有添加以及删除,移动replica set,driver接口会自己处理这些改变。

顺便提到,假设你想要直接连接入一个replica set并且无论它是否是现在的primary(也许只是想监控下它的运行状态或者进行只读语句),可以使用下面连接语句:

mongodb://server2/?connect=direct;readpreference=nearest

可以在下面的链接获取比较齐全的connection string文档

更加深入地额:

SSL Support

这些不感兴趣,大概是driver连接的一个设置

通过在connection string里面加入“ssl=true”选项来设置

mongodb://server2/?ssl=true

在默认的情况下,server是通过本地的受信任的证书机构获取许可。在一些测试环境下面,测试server没有签署证书,为了缓解这个情况,香港虚拟主机,可以使用在connection string里面添加“sslverifycertificate=false”来屏蔽所有certificate errors(认证错误)。

Authentication

MongoDB支持两种认证方式。一种是在程序执行时,调用特定的方法。在执行特定的方法时,认证将会被使用。另外一种健壮的方法是在MongoCredentialsStore存储认证信息。

下面是一个例子,使用credential store来确定admin和“foo”数据库的认证信息。除了使用“admin”以及“foo”连接入数据库,还可以使用默认的认证“test”。

var url = new MongoUrl("mongodb://test:user@localhost:27017"); var settings = MongoClientSettings.FromUrl(url); var adminCredentials = new MongoCredentials("admin", "user", true); settings.CredentialsStore.Add("admin", adminCredentials); var fooCredentials = new MongoCredentials("foo", "user", false); settings.CredentialsStore.Add("foo", fooCredentials); var client = new MongoClient(settings); 我感觉类似SQL语句: foo.* ; GetServer method 在MongoClient实例中调用GetServer方法获取MongoServer的实例。   MongoServer class  

使用MongoServer类可以进行更多的控制操作。它使用了先进的技术通过一个单个的socket获取数据库以及进行一系列的数据库操作,并且保持数据库的一致性。

GetDatabase method

通过这个方法访问数据库

例子代码:

MongoClient client = new MongoClient(); // connect to localhost MongoServer server = client.GetServer(); MongoDatabase test = server.GetDatabase("test"); MongoCredentials credentials = new MongoCredentials("username", "password"); MongoDatabase salaries = server.GetDatabase("salaries", credentials);
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1663
14
PHP-Tutorial
1266
29
C#-Tutorial
1239
24
Verwenden Sie den Komponisten, um das Dilemma von Empfehlungssystemen zu lösen: Andres-Montanez/Empfehlungen-Bundle Verwenden Sie den Komponisten, um das Dilemma von Empfehlungssystemen zu lösen: Andres-Montanez/Empfehlungen-Bundle Apr 18, 2025 am 11:48 AM

Bei der Entwicklung einer E-Commerce-Website habe ich auf ein schwieriges Problem gestoßen: So liefern Sie den Benutzern personalisierte Produktempfehlungen. Anfangs habe ich einige einfache Empfehlungsalgorithmen ausprobiert, aber die Ergebnisse waren nicht ideal und die Benutzerzufriedenheit war ebenfalls betroffen. Um die Genauigkeit und Effizienz des Empfehlungssystems zu verbessern, habe ich mich entschlossen, eine professionellere Lösung zu übernehmen. Schließlich habe ich Andres-Montanez/Empfehlungen durch den Komponisten installiert, was nicht nur mein Problem löste, sondern auch die Leistung des Empfehlungssystems erheblich verbesserte. Sie können Komponist über die folgende Adresse lernen:

So konfigurieren Sie die automatische Expansion von MongoDB auf Debian So konfigurieren Sie die automatische Expansion von MongoDB auf Debian Apr 02, 2025 am 07:36 AM

In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Apr 02, 2025 am 07:21 AM

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Apr 08, 2025 pm 09:39 PM

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Was ist die CentOS MongoDB -Backup -Strategie? Was ist die CentOS MongoDB -Backup -Strategie? Apr 14, 2025 pm 04:51 PM

Detaillierte Erläuterung der effizienten Backup -Strategie von MongoDB im CentOS -System Dieser Artikel wird die verschiedenen Strategien zur Implementierung der MongoDB -Sicherung im CentOS -System ausführlich einführen, um die Datensicherheit und die Geschäftsübergang zu gewährleisten. Wir werden manuelle Backups, zeitgesteuerte Sicherungen, automatisierte Skriptsicherungen und Sicherungsmethoden in Docker -Containerumgebungen abdecken und Best Practices für die Verwaltung von Sicherungsdateien bereitstellen. Handbuch Sicherung: Verwenden Sie den Befehl mongodump, um eine manuelle vollständige Sicherung durchzuführen.

So verschlüsseln Sie Daten in Debian MongoDB So verschlüsseln Sie Daten in Debian MongoDB Apr 12, 2025 pm 08:03 PM

Verschlüsseln Sie die MongoDB -Datenbank in einem Debian -System erfordert die folgenden Schritte: Schritt 1: Stellen Sie zuerst die MongoDB -Installation durch, dass Ihr Debian -System MongoDB installiert hat. Wenn nicht, lesen Sie bitte das offizielle MongoDB-Dokument für die Installation: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/step 2: Generieren Sie die Verschlüsselungsschlüsseldatei Erstellen Sie eine Datei, die die Verschlüsselungsschlüssel enthält, und setzen

So wählen Sie eine Datenbank für GitLab auf CentOS aus So wählen Sie eine Datenbank für GitLab auf CentOS aus Apr 14, 2025 pm 04:48 PM

Die GitLab -Datenbank -Bereitstellungshandbuch zum CentOS -System zur Auswahl der richtigen Datenbank ist ein wichtiger Schritt bei der erfolgreichen Bereitstellung von GitLab. GitLab ist mit einer Vielzahl von Datenbanken kompatibel, darunter MySQL, PostgreSQL und MongoDB. In diesem Artikel wird ausführlich erklärt, wie Sie diese Datenbanken auswählen und konfigurieren. Datenbankauswahlempfehlung MySQL: Ein weit verbreitetes relationales Datenbankverwaltungssystem (RDBMS) mit stabiler Leistung und für die meisten GitLab -Bereitstellungsszenarien geeignet. PostgreSQL: leistungsstarke Open -Source -RDBMs unterstützt komplexe Abfragen und erweiterte Funktionen, die für die Behandlung großer Datensätze geeignet sind. MongoDB: beliebte NoSQL -Datenbank, gut im Umgang mit See

So richten Sie Benutzer in MongoDB ein So richten Sie Benutzer in MongoDB ein Apr 12, 2025 am 08:51 AM

Befolgen Sie die folgenden Schritte, um einen MongoDB -Benutzer einzurichten: 1. Stellen Sie eine Verbindung zum Server her und erstellen Sie einen Administratorbenutzer. 2. Erstellen Sie eine Datenbank, um Benutzern Zugriff zu gewähren. 3.. Verwenden Sie den Befehl createUser, um einen Benutzer zu erstellen und seine Rolle und Datenbankzugriffsrechte anzugeben. V. 5. Legen Sie optional andere Berechtigungen oder Gewährung der Benutzer Berechtigungen für eine bestimmte Sammlung ein.

See all articles