C#怎么连接MongoDB数据库 C# MongoDB官方驱动使用方法

4次阅读

推荐使用官方驱动 MongoDB.Driver,它支持 .NET 5/6/7/8 和 .NET Framework 4.7.2+,安装后通过 MongoClient 建立连接、获取数据库和集合,支持异步增删改查及 BSON 映射。

C# 怎么连接 MongoDB 数据库 C# MongoDB 官方驱动使用方法

用 C# 连接 MongoDB,推荐直接使用官方驱动 MongoDB.Driver(.NET 版),它支持 .NET 5/6/7/8 和 .NET Framework 4.7.2+,封装完善、异步友好、文档齐全。

安装官方驱动包

在项目中通过 NuGet 安装核心包:

  • MongoDB.Driver:主驱动(含同步 / 异步 API、LINQ 支持、连接池等)
  • (可选)MongoDB.Bson:BSON 类型基础库(Driver 已自动依赖,一般无需单独装)

命令行安装:

dotnet add package MongoDB.Driver

建立连接并获取数据库 / 集合

使用 MongoClient 管理连接(线程安全,建议全局单例复用):

var connectionString = "mongodb://localhost:27017"; var client = new MongoClient(connectionString); // 自动复用连接池 var database = client.GetDatabase("mydb"); var collection = database.GetCollection("people"); // 指定强类型

注意:

  • 连接字符串支持用户名密码、副本集、SSL 等,例如:
    mongodb://user:pass@localhost:27017/mydb?authSource=admin&ssl=true
  • GetCollection 中的 T 是你的实体类,需匹配 BSON 字段(或用 [BsonElement] 映射)

基本增删改查操作(异步推荐)

所有核心方法都提供 Async 版本,避免阻塞:

// 插入 await collection.InsertOneAsync(new Person { Name = "张三", Age = 25}); 

// 查询单条 var person = await collection.Find(x => x.Name == "张三").FirstOrDefaultAsync();

// 查询多条(支持 LINQ)var adults = await collection.Find(x => x.Age >= 18).ToListAsync();

// 更新(按条件)await collection.UpdateOneAsync(Builders.Filter.Eq(x => x.Name, "张三"), Builders.Update.Set(x => x.Age, 26) );

// 删除 await collection.DeleteManyAsync(x => x.Age <18);

实体类与 BSON 映射要点

定义 POCO 类时注意默认行为:

  • ID 字段建议命名为 IdObjectIdstring 类型),驱动会自动映射为 _id
  • 如字段名不一致,用特性标注:
    [BsonElement("user_name")] public string UserName {get; set;}
  • 忽略字段:
    [BsonIgnore] public string TempFlag {get; set;}
  • 自定义 ObjectId 生成(如用字符串 ID):
    [BsonId][BsonRepresentation(BsonType.ObjectId)] public string Id {get; set;}

基本上就这些。只要连接串正确、实体对齐、用好异步 API,C# 操作 MongoDB 很顺畅。官方 驱动更新 活跃,遇到问题优先查 官方文档

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-07发表,共计1482字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。