新增功能
在本页面上
了解新增功能
3.1版本的新功能
3.1版本的驱动程序发布包括以下新功能
在System.Collections.Immutable命名空间中添加了新的默认序列化程序用于不可变集合。驱动程序现在可以序列化
ImmutableArray
对象,并且其他不可变集合的序列化更加内存高效。为
equals
运算符添加了对token字段类型和数组字段表达式的支持。要了解有关使用Atlas Search与.NET/C#驱动程序的更多信息,请参阅Atlas Search.在Atlas Search中添加了对顺序分页的支持。
添加了对少于3个部分的有效SRV主机名的支持。
在MongoDB Query API过滤器中添加了对
Exists
、IsMissing
和IsNullOrMissing
方法的支持。添加了对精确最近邻(ENN)向量搜索的支持。要了解有关ENN向量搜索的更多信息,请参阅Atlas Search文档中的运行向量搜索查询。
为更新命令添加了对
sort
选项的支持。要了解有关使用update命令与.NET/C#驱动程序的更多信息,请参阅修改文档。
有关本版本的更多信息,请参阅 v3.1 版本说明。
3.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版本更新内容
2.30版本的驱动程序没有引入新的功能或错误修复。其目的是通过将v3.0版本中删除的公共API标记为已过时,来简化迁移到.NET/C#驱动程序v3.x。
2.29版本更新内容
2.29版本的驱动程序发布增加了对MongoDB Server 8.0版本的支持,并包含以下新特性:
增加了对Queryable Encryption范围协议的v2版本的支持。
增加了对Queryable Encryption的范围索引支持。有关Queryable Encryption的更多信息,请参阅MongoDB服务器手册中的Queryable Encryption。
有关此版本的更多信息,请参阅2.29版本说明。
2.28版本的新特性
警告
2.28版本的潜在重大变更
所有.NET/C#驱动组件都使用强命名。如果您的应用程序有依赖多个.NET/C#驱动版本的依赖项,您必须创建绑定重定向来管理这些依赖项。有关更多信息,请参阅2.28.0版本重大变更。
2.28驱动程序版本包括以下新特性
增加了对涉及
Nullable<T>
的额外数字转换的支持。当使用KMIP进行
CSFLE或可查询加密时,增加了对
delegated
选项的支持。
有关此版本的信息,请参阅2.28版本发布说明。
2.27版本的新特性
2.27驱动程序版本包括以下新特性
增加了对聚合运算符
$sample
的支持。实现了LINQ3序列化器的
Equals()
方法。确保不会将读取和写入关注点应用到Atlas搜索索引辅助命令中,以避免错误。
当使用
MONGODB-OIDC
身份验证机制时,不允许在authMechanismProperties
连接字符串值中使用逗号字符。修复了一个翻译错误,该错误在涉及不同大小数字的序列化过程中导致错误。
增加了对使用
libdl.so.2
库的 Linux 发行版的支持。
有关本版本的更多信息,请参阅v2.27 版本说明。
2.26 中的新功能
2.26 驱动程序版本包含以下新功能
在
Select()
和Project()
聚合阶段中增加了对使用SelectMany()
聚合方法的支持。在 LINQ 查询中增加了对
Dictionary.ContainsValue()
调用的支持。增加了对混合类型字符串连接的支持。
在
libmongocrypt
绑定中启用了原生crypto
的使用。增加了对
Memory
和ReadOnlyMemory
结构的序列化支持。在使用
MONGODB-OIDC
身份验证机制时增加了对 GCP Identity Provider 的支持。有关更多信息,请参阅企业身份验证机制指南中的 GCP IMDS。实现了对 NuGet 包的签名。
在可能的情况下实现了对其他
mongos
实例的读写重试。
2.25版本更新内容
2.25驱动程序发布包含以下新功能
增加了对
MONGODB-OIDC
身份验证机制和Azure Identity Provider自动令牌获取的支持。当
BsonClassMapSerializer
找不到匹配的创建器时,增加了错误消息中的类名。增加了
LoggedStages
字段,以显示执行LINQ查询后的MQL执行。增加了通过使用
srvServiceName
连接选项,用自定义名称覆盖"mongodb"
服务名的支持。改进了批量写操作的行为,以防止多次枚举请求参数。
2.24版本更新内容
2.24驱动程序发布包含以下新功能
增加了对$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版本的新特性
2.23驱动程序版本包含以下新功能:
对LINQ3集成进行了改进和错误修复。
添加了对聚合位运算符的支持。
添加了对MongoDB时序集合中
$out
操作符的支持。添加了用于处理大于16 MB的更改流事件的 ChangeStreamSplitLargeEvent。
2.22版本新特性
2.22版本驱动程序包括以下新特性:
对LINQ3集成进行了改进和错误修复。
增加了对 $set 和 $vectorSearch 聚合阶段的支持。
为Atlas Search增加了同义词支持。
在使用加密时减少了内存分配。
增加了服务器发现和监控(SDAM)事件的日志消息。有关这些事件的更多信息,请参阅 MongoDB SDAM 日志和监控规范。