文档菜单
文档首页
/ / /
C#/.NET

新增功能

在本页面上

  • 3.1 版本新增功能
  • 3.0 版本新增功能
  • 2.30 版本新增功能
  • 2.29 版本新增功能
  • 2.28 版本新增功能
  • 2.27 版本新增功能
  • 2.26 版本新增功能
  • 2.25 版本新增功能
  • 2.24 版本新增功能
  • 2.23 版本新增功能
  • 2.22 版本新增功能

了解新增功能

  • 版本 3.1

  • 版本 3.0

  • 版本 2.30

  • 版本 2.29

  • 版本 2.28

  • 版本 2.27

  • 版本 2.26

  • 版本 2.25

  • 版本 2.24

  • 版本 2.23

  • 版本 2.22

3.1版本的驱动程序发布包括以下新功能

  • System.Collections.Immutable命名空间中添加了新的默认序列化程序用于不可变集合。驱动程序现在可以序列化ImmutableArray对象,并且其他不可变集合的序列化更加内存高效。

  • equals运算符添加了对token字段类型和数组字段表达式的支持。要了解有关使用Atlas Search与.NET/C#驱动程序的更多信息,请参阅Atlas Search.

  • 在Atlas Search中添加了对顺序分页的支持。

  • 添加了对少于3个部分的有效SRV主机名的支持。

  • 在MongoDB Query API过滤器中添加了对ExistsIsMissingIsNullOrMissing方法的支持。

  • 添加了对精确最近邻(ENN)向量搜索的支持。要了解有关ENN向量搜索的更多信息,请参阅Atlas Search文档中的运行向量搜索查询

  • 为更新命令添加了对sort选项的支持。要了解有关使用update命令与.NET/C#驱动程序的更多信息,请参阅修改文档。

有关本版本的更多信息,请参阅 v3.1 版本说明。

警告

v3.0 的重大变更

v3.0 驱动程序包含重大变更。有关更多信息,请参阅 v3.0 版本重大变更

v3.0 驱动程序版本包含以下新特性

  • 添加了 MongoClientSettings.TranslationOptions 连接选项,用于指定将 LINQ 查询转换为查询 API 的选项。有关更多信息,请参阅 连接选项

  • 添加了对 Half 类型的支持,该类型表示半精度浮点数。该类型在 .NET 5 及更高版本中可用。有关 Half 类型的更多信息,请参阅 MSDN 上的 Half 结构 API 参考页面。

  • IMongoClient 接口继承自 IDisposable 接口。因此,MongoClient 类以及其他实现 IMongoClient 接口的类都包含一个 Dispose() 方法,用于释放客户端。此方法不会释放底层的集群和与 MongoDB 服务器的连接。要释放集群和连接,请调用 ClusterRegistry.UnregisterAndDisposeCluster() 方法。对 IDisposable 接口的实现是实验性的。

    有关 IDisposable 接口和 Dispose() 方法的更多信息,请参阅 MSDN 上的 Dispose 模式

  • 支持 DateOnly 类型,该类型表示没有时间组件的日期值。此类型在 .NET 6 及更高版本中可用。有关 DateOnly 类型的更多信息,请参阅 MSDN 上的 DateOnly 结构体。 API 参考页面。

  • 添加了对TimeOnly类型的支持,该类型表示不带日期组件的时间值。此类型在.NET 6及更高版本中可用。有关TimeOnly类型的更多信息,请参阅TimeOnly 结构。 MSDN上的API参考页面。

  • 当使用LINQ3提供程序执行Find()方法、Select()方法或Project()聚合阶段时,添加了对客户端隐式投影的支持。在驱动程序的先前版本中,只有在调用ToEnumerable()AsEnumerable()方法后,才能使用LINQ3提供程序执行客户端投影。

    要了解如何启用和使用驱动程序方法上的客户端投影,请选择相应的选项卡

    // Enable client-side projection
    var findOptions = new FindOptions();
    findOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var find = collection
    .Find(doc => doc.Id == 1, findOptions);
    .Project(doc => new { R = MyFunction(doc.Name) });
    // Enable client-side projection
    var aggregateOptions = new AggregateOptions();
    aggregateOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var queryable = collection
    .AsQueryable(aggregateOptions)
    .Where(doc => doc.Id == 1)
    .Select(doc => new { R = MyFunction(doc.Name) });
    // Enable client-side projection
    var aggregateOptions = new AggregateOptions();
    aggregateOptions.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };
    var aggregate = collection
    .Aggregate(aggregateOptions)
    .Project(doc => new { R = MyFunction(doc.Name) });

    提示

    MongoClientSettings

    要为客户端上的所有查询启用客户端投影,请设置您的MongoClientSettings对象的TranslationOptions属性,如下例所示

    clientSettings.TranslationOptions = new ExpressionTranslationOptions
    {
    EnableClientSideProjections = true
    };

    有关使用.NET/C#驱动程序执行聚合管道的更多信息,请参阅聚合。

  • 添加了对批量写入操作的MongoClient API的支持。有关批量写入操作的更多信息,请参阅批量写入操作。

有关此版本的更多信息,请参阅v3.0版本说明。

2.30版本的驱动程序没有引入新的功能或错误修复。其目的是通过将v3.0版本中删除的公共API标记为已过时,来简化迁移到.NET/C#驱动程序v3.x。

2.29版本的驱动程序发布增加了对MongoDB Server 8.0版本的支持,并包含以下新特性:

  • 增加了对Queryable Encryption范围协议的v2版本的支持。

  • 增加了对Queryable Encryption的范围索引支持。有关Queryable Encryption的更多信息,请参阅MongoDB服务器手册中的Queryable Encryption

有关此版本的更多信息,请参阅2.29版本说明。

警告

2.28版本的潜在重大变更

  • 所有.NET/C#驱动组件都使用强命名。如果您的应用程序有依赖多个.NET/C#驱动版本的依赖项,您必须创建绑定重定向来管理这些依赖项。有关更多信息,请参阅2.28.0版本重大变更。

2.28驱动程序版本包括以下新特性

  • 增加了对涉及Nullable<T>的额外数字转换的支持。

  • 当使用KMIP进行CSFLE或可查询加密时,增加了对delegated选项的支持。

有关此版本的信息,请参阅2.28版本发布说明。

2.27驱动程序版本包括以下新特性

  • 增加了对聚合运算符$sample的支持。

  • 实现了LINQ3序列化器的Equals()方法。

  • 确保不会将读取和写入关注点应用到Atlas搜索索引辅助命令中,以避免错误。

  • 当使用MONGODB-OIDC身份验证机制时,不允许在authMechanismProperties连接字符串值中使用逗号字符。

  • 修复了一个翻译错误,该错误在涉及不同大小数字的序列化过程中导致错误。

  • 增加了对使用 libdl.so.2 库的 Linux 发行版的支持。

有关本版本的更多信息,请参阅v2.27 版本说明。

2.26 驱动程序版本包含以下新功能

  • Select()Project() 聚合阶段中增加了对使用 SelectMany() 聚合方法的支持。

  • 在 LINQ 查询中增加了对 Dictionary.ContainsValue() 调用的支持。

  • 增加了对混合类型字符串连接的支持。

  • libmongocrypt 绑定中启用了原生 crypto 的使用。

  • 增加了对 MemoryReadOnlyMemory 结构的序列化支持。

  • 在使用 MONGODB-OIDC 身份验证机制时增加了对 GCP Identity Provider 的支持。有关更多信息,请参阅企业身份验证机制指南中的 GCP IMDS

  • 实现了对 NuGet 包的签名。

  • 在可能的情况下实现了对其他 mongos 实例的读写重试。

2.25驱动程序发布包含以下新功能

  • 增加了对MONGODB-OIDC身份验证机制和Azure Identity Provider自动令牌获取的支持。

  • BsonClassMapSerializer找不到匹配的创建器时,增加了错误消息中的类名。

  • 增加了LoggedStages字段,以显示执行LINQ查询后的MQL执行。

  • 增加了通过使用srvServiceName连接选项,用自定义名称覆盖"mongodb"服务名的支持。

  • 改进了批量写操作的行为,以防止多次枚举请求参数。

2.24驱动程序发布包含以下新功能

  • 增加了IMongoCollection.DistinctMany()方法。

  • 增加了对$dateFromString聚合表达式中最新可选参数的支持。

  • 增加了对$search聚合阶段的按分数排序的支持。

  • $vectorSearch聚合阶段添加了VectorSearchScore构建器。

  • Atlas Search中添加了对$in操作符的支持。

  • 为LINQ查询添加了Mql.Exists()Mql.IsMissing()Mql.IsNullOrMissing()方法。

  • 在LINQ查询中添加了对IComparable.CompareTo()方法的支持。

  • 添加了对AsQueryable()方法嵌套调用的支持,以支持通过MongoDB Entity Framework Core Provider执行LINQ查询。

  • 添加了对TLS 1.3的支持。

  • libmongocrypt包的版本更新到1.8.2。

  • 修复了在较新Linux发行版上Kerberos(libgssapi)中的段错误。

  • 修复了GridFS的一个bug,该bug导致在下载具有相同ID的大文件时出现错误。

  • 现在对于读写操作,ExceededTimeLimit服务器错误是可重试的。

  • 在函数即服务(FaaS)环境(如AWS Lambda)中运行时,驱动程序现在使用轮询监控机制。

  • 为了提高MongoDB Atlas Serverless兼容性,如果服务器支持,驱动程序现在使用OP_MSG进行身份验证。

2.23驱动程序版本包含以下新功能:

  • 对LINQ3集成进行了改进和错误修复。

  • 添加了对聚合位运算符的支持。

  • 添加了对MongoDB时序集合中$out操作符的支持。

  • 添加了用于处理大于16 MB的更改流事件的 ChangeStreamSplitLargeEvent

2.22版本驱动程序包括以下新特性:

  • 对LINQ3集成进行了改进和错误修复。

  • 增加了对 $set$vectorSearch 聚合阶段的支持。

  • 为Atlas Search增加了同义词支持。

  • 在使用加密时减少了内存分配。

  • 增加了服务器发现和监控(SDAM)事件的日志消息。有关这些事件的更多信息,请参阅 MongoDB SDAM 日志和监控规范。

返回

快速参考