了解以下版本中的新功能:
即将发生的破坏性变更 (breaking change)
根据MongoDB软件生命周期时间表,即将发布的.NET/ C#驱动程序的次要版本会将MongoDB Server 的最低版本从 4.0 提高到 4.2。.NET/ C#驱动程序将不再支持MongoDB Server 4.0。
3.3 中的新功能
3.3驱动程序版本包括以下新功能:
添加新的
NamespaceType字段,指示为ChangeStreamDocument类中的create事件创建的对象的类型。要学习;了解有关变更流的更多信息,请参阅 监控数据变更指南。添加以下“正在使用的加密”功能:
支持 $lookup聚合阶段
用于配置数据加密密钥缓存生命周期的
ClientEncryptionOptions属性
要学习;了解有关“正在使用的加密”的更多信息,请参阅“正在使用的加密”指南。
添加以下 LINQ 功能:
新增对
$rankFusion聚合阶段的支持,该阶段可对多个管道的合并结果进行基于排名的结果评分。通过提供仅采用过滤参数的 方法的重载,添加对直接针对值的 $elemMatch 查询的支持。
ElemMatch()要学习;了解更多信息,请参阅更新一个文档中的数组和更新多个文档中的数组。新增对使用
OfType<T>()方法和is操作符检查标量鉴别器类型的支持。
3.2 中的新功能
3.2驱动程序版本包括以下新功能:
添加了新的
ObjectSerializerAllowedTypesConvention约定,允许指定对象序列化器可以对哪些类型进行序列化和反序列化。要学习;了解有关约定的更多信息,请参阅 约定指南。为
EnumRepresentationConvention类添加一个新的构造函数,该构造函数允许您使用topLevelOnly参数来指定该约定是仅适用于枚举属性还是适用于包含枚举集合的所有属性。您可以使用 new 构造函数实例化
EnumRepresentationConvention类,如以下示例所示:EnumRepresentationConvention(BsonType representation, bool topLevelOnly); 优化客户端投影,仅从服务器检索必填字段,而不是检索所有字段然后进行过滤。
添加以下类以支持MongoDB Vector Search 中的二进制向量表示:
BinaryVectorFloat32BinaryVectorInt8BinaryVectorPackedBit
要学习;了解有关使用.NET/ C#驱动程序进行MongoDB Vector Search 的更多信息,请参阅运行MongoDB Vector Search 查询指南。
将
DocumentFormat属性添加到DateOnlySerializer。此属性允许您自定义驱动程序序列化DateOnly值的方式。此发布还添加了[BsonDateOnlyOptions()]属性,以便在属性级别自定义DateOnly值的序列化行为。要学习;了解更多信息,请参阅 POCO指南的自定义仅日期序列化 部分。
3.1 中的新功能
3.1驱动程序版本包括以下新功能:
为 System.Collections.Immutable 命名空间中的不可变集合添加新的默认序列化器。驱动程序现在可以序列化
ImmutableArray对象,并且其他不可变集合的序列化内存效率更高。添加
SearchIndexType类型以支持以编程方式创建MongoDB Vector Search 索引。要学习;了解更多信息,请参阅MongoDB搜索和MongoDB Vector Search 索引指南。使用 操作符符的MongoDB Search构建者添加对令牌字段类型和大量字段表达式的支持。要学习;了解有关将MongoDB Search 与.NET/ C#驱动程序结合使用的更多信息,请参阅MongoDB
equalsSearch。新增对以下MongoDB Search 查询的支持:
对
null和Guid值使用Equals()操作符方法对
Guid值使用In()操作符方法
在MongoDB Search 中添加对顺序分页的支持。
新增对少于 3 部分的有效 SRV 主机名的支持。
在MongoDB查询API筛选器中添加对
Exists、IsMissing和IsNullOrMissing方法的支持。添加对精确最近邻 (ENN)向量搜索的支持。要学习;了解有关 ENN Vector Search 的更多信息,请参阅MongoDB Search 文档中的运行向量搜索查询。
为更新和替换操作添加排序选项。此更改允许您在尝试更新或替换单个文档时,如果有多个文档与过滤匹配,则可以设立排序顺序。要学习;了解更多信息,请参阅更新一个和更新多个指南。
有关此发布的更多信息,请参阅v3.1发布说明。
3.0 中的新功能
3.0驱动程序版本包括以下新功能:
添加
MongoClientSettings.TranslationOptions连接选项,该选项指定用于将 LINQ 查询转换为 Query API 的选项。有关详细信息,请参阅指定连接选项。添加对
Half类型的支持,该类型表示半精度浮点数。此类型在.NET 5 及更高版本中可用。要学习;了解有关Half类型的更多信息,请参阅 MSDN 上的半结构体API 参考页面。IMongoClient接口继承IDisposable接口。因此,MongoClient类和实现IMongoClient接口的其他类包含要传递给更新 Commands.ose() 的Disp- Adds support for the ``sort选项。方法,该方法会处理客户端端 .此方法不会释放根本的集群以及与MongoDB 服务器 的连接。要销毁集群和连接,请调用ClusterRegistry.UnregisterAndDisposeCluster()方法。IDisposable接口的实施是实验性的。新增对
DateOnly类型的支持,该类型表示不带时间组件的日期值。此类型在.NET 6 及更高版本中可用。要学习;了解有关DateOnly类型的更多信息,请参阅 DateOnly 结构体。 MSDN 上的API参考页面。新增对
TimeOnly类型的支持,该类型表示不带日期组件的时间值。此类型在.NET 6 及更高版本中可用。要学习;了解有关TimeOnly类型的更多信息,请参阅 TimeOnly 结构体。 MSDN 上的API参考页面。添加了在将
Find()方法、Select()方法或 LINQ3提供商的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#驱动程序结合使用的更多信息,请参阅聚合操作。
为批量写入操作添加
MongoClientAPI 。要学习;了解有关批量写入操作的更多信息,请参阅批量写入操作。
有关此发布的更多信息,请参阅v3.0发布说明。
2.30 中的新功能
2.30驱动程序不会引入新功能或错误修复。其目的是通过将 v3.0 中删除的公共 API 标记为已过时,从而简化向 .NET/C# 驱动程序的 v3.x 迁移。
2.29 中的新功能
2.29驱动程序发布增加了对MongoDB Server 8.0 版本的支持,并包含以下新功能:
新增支持v 2的Queryable Encryption范围协议的支持。
添加对Queryable Encryption范围索引的支持。 有关Queryable Encryption的更多信息,请参阅MongoDB Server手册中的Queryable Encryption 。
有关此发布的更多信息,请参阅v2.29发布说明。
2.28 中的新功能
警告
v 2.28中潜在的重大更改
所有.NET/ C#驱动程序组件都有强命名。 如果应用程序具有引用多个.NET/ C#驱动程序版本的依赖项,则必须创建绑定重定向来管理这些依赖项。 有关更多信息,请参阅版本 2.28.0重大更改。
2.28驱动程序版本包括以下新功能:
添加了对涉及
Nullable<T>的其他数字转换的支持。添加了在使用 KMIP 进行CSFLE 或Queryable Encryption时对
delegated选项的支持。
有关此发布的更多信息,请参阅v2.28发布说明。
2.27 中的新功能
2.27驱动程序版本包括以下新功能:
新增支持
$sample聚合操作符的支持。为 LINQ 3中的序列化器实现
Equals()方法。确保读关注和写入关注不会应用于MongoDB搜索索引助手命令,以避免错误。
使用
MONGODB-OIDC身份验证机制时,禁止在authMechanismProperties连接string值中使用逗号字符。修复了一个转换错误,该错误在涉及不同大小的数字的序列化过程中导致错误。
新增对使用
libdl.so.2库的Linux发行版的支持。
有关此发布的更多信息,请参阅v2.27发布说明。
2.26 中的新功能
2.26驱动程序版本包括以下新功能:
添加了对在
Select()和Project()聚合阶段使用SelectMany()聚合方法的支持。在 LINQ 查询中添加了对
Dictionary.ContainsValue()调用的支持。添加了对混合类型string连接的支持。
支持在
libmongocrypt绑定中使用原生crypto。添加了对
Memory和ReadOnlyMemory结构序列化的支持。要学习;了解有关实现这些类型的更多信息,请参阅序列化指南的“提高数组序列化性能”部分。添加了使用
MONGODB-OIDC身份验证机制时对GCP身份提供商的支持。 要学习;了解更多信息,请参阅 企业身份验证机制指南中的GCP IMDS 。实现了 NuGet 包的签名。
尽可能对其他
mongos实例实施读取和写入重试。
2.25 中的新功能
2.25驱动程序版本包括以下新功能:
添加了对
MONGODB-OIDC身份验证机制和 Azure 身份提供者自动获取令牌的支持。在
BsonClassMapSerializer找不到匹配的创建者时报告的错误消息中添加了类名称。添加了
LoggedStages字段以显示执行 LINQ查询后执行的MQL 。添加了对通过使用
srvServiceName连接选项以自定义服务名称覆盖"mongodb"服务名称的支持。要学习;了解更多信息,请参阅指定连接选项指南。改进批量写入操作的行为,以防止多次枚举请求参数。