MongoDB.Driver pour C# (.NET) : guide complet
1. Qu'est-ce que MongoDB.Driver et pourquoi l'utiliser ?
MongoDB.Driver est le pilote officiel, hautes performances et asynchrone, permettant aux applications .NET (C#, F#, VB.NET) d'interagir avec la base de données MongoDB. Il fournit un ensemble complet d'outils pour effectuer toutes les opérations CRUD (Create, Read, Update, Delete), gérer les index, réaliser des agrégations de données, travailler avec des transactions et traiter les changements en temps réel (Change Streams). Développé et maintenu par MongoDB Inc., ce pilote garantit une compatibilité totale avec les dernières versions de MongoDB et implémente toutes les fonctionnalités modernes du SGBD.
Pourquoi utiliser cette bibliothèque ? Si vous développez une application .NET (service web ASP.NET Core, application de bureau WPF, utilitaire console ou microservice) et souhaitez utiliser MongoDB comme stockage de données principal ou secondaire, vous avez besoin d'un pilote pour établir la connexion et échanger des données. MongoDB.Driver abstrait la complexité du protocole réseau MongoDB (Wire Protocol), offrant au développeur une API pratique et fortement typée. Vous travaillez avec des objets C#, et le pilote les sérialise automatiquement en BSON (format binaire de MongoDB) et inversement. Cela permet d'écrire un code concis, sûr et performant sans se soucier des détails de bas niveau.
La bibliothèque prend en charge deux paradigmes de travail : synchrone et asynchrone (recommandé). Les méthodes asynchrones (avec le suffixe Async) ne bloquent pas les threads d'exécution, ce qui est essentiel pour les applications serveur évolutives. Le pilote inclut également un fournisseur LINQ qui traduit les requêtes LINQ en syntaxe MongoDB Aggregation Pipeline, rendant le code encore plus déclaratif et familier pour les développeurs .NET.
2. Installation
L'installation s'effectue via le gestionnaire de packages NuGet. Exécutez l'une des commandes suivantes dans la console du gestionnaire de packages (Package Manager Console) ou dans le terminal .NET CLI.
Avec .NET CLI (recommandé) :
dotnet add package MongoDB.Driver
Avec Package Manager Console (Visual Studio) :
Install-Package MongoDB.Driver
Pour les projets utilisant Entity Framework Core (optionnel) :
Il existe un fournisseur distinct MongoDB.EntityFrameworkCore, mais pour la plupart des tâches, le pilote principal suffit.
Après l'installation, une référence sera ajoutée au fichier projet (.csproj) :
<PackageReference Include="MongoDB.Driver" Version="2.25.0" />
3. Démarrage rapide — exemple minimal fonctionnel
Le code suivant se connecte à une instance locale de MongoDB, récupère la base de données "testdb", la collection "users", insère un document et affiche son ID dans la console.
using MongoDB.Bson;
using MongoDB.Driver;
// 1. Création du client (connexion au serveur)
var client = new MongoClient("mongodb://localhost:27017");
// 2. Récupération de la base de données (créée automatiquement si elle n'existe pas)
var database = client.GetDatabase("testdb");
// 3. Récupération de la collection (créée automatiquement lors de la première insertion)
var collection = database.GetCollection<BsonDocument>("users");
// 4. Création du document
var document = new BsonDocument
{
{ "name", "Alice" },
{ "age", 30 },
{ "city", "Paris" }
};
// 5. Insertion du document (de manière asynchrone)
await collection.InsertOneAsync(document);
// 6. Affichage de l'ID généré
Console.WriteLine($"Document inséré avec l'ID : {document["_id"]}");
// 7. Lecture de tous les documents de la collection
var allUsers = await collection.Find(new BsonDocument()).ToListAsync();
foreach (var user in allUsers)
{
Console.WriteLine(user.ToJson());
}
4. Méthodes/fonctions/classes principales
4.1 Mon
Aussi dans la bibliothèque
Travail avec les dates en Kotlin : bibliothèques et outils de développement
yaml-cpp pour C++ : guide complet avec exemples
Travailler avec Excel en Kotlin : bibliothèques Apache POI et wrappers Kotlin
Java pour la géolocalisation et les cartes : bibliothèques, API et exemples
Travailler avec S3 et les stockages cloud en C++ : la bibliothèque aws-sdk-cpp