Overview
本页介绍了升级到新版本的Go驾驶员时必须对应用程序进行的更改。
升级前,请执行以下操作:
确保新的Go驾驶员版本与应用程序连接的MongoDB Server版本以及应用程序运行的Go版本兼容。有关更多信息,请参阅 兼容性页面。
在“重大更改”部分中,解决应用程序使用的驾驶员版本与计划升级版本之间的任何重大更改。
提示
为了最大限度地减少应用程序将来升级驾驶员版本时所需的更改次数,请使用 Stable API。
重大更改
重大更改是对从特定版本的驱动程序开始的约定或行为的更改。 如果在升级驱动程序之前未解决,此类更改可能会导致应用程序无法正常工作。
本部分中的破坏性变更 (breaking change) 按引入它们的驱动程序版本进行分类。升级驱动程序版本时,请解决当前版本和升级版本之间的所有破坏性变更 (breaking change)。
版本 2.2破坏性变更
版本 2.0破坏性变更
mongo.Connect()不接受 Context 参数。此方法只接受一个选项对象。要查看使用此方法的示例,请参阅连接指南中的连接示例代码。Cursor.SetMaxTime()方法已重命名为Cursor.SetMaxAwaitTime()。 此方法指定服务器等待使用可追加可追加游标从固定大小集合中检索新文档的最长时间。删除特定于操作的超时选项。 以下字段和 setter 方法已从驾驶员中删除:
AggregateOptions.MaxTime,AggregateOptions.SetMaxTime()ClientOptions.SocketTimeout,ClientOptions.SetSocketTimeout()CountOptions.MaxTime,CountOptions.SetMaxTime()DistinctOptions.MaxTime,DistinctOptions.SetMaxTime()EstimatedDocumentCountOptions.MaxTime,EstimatedDocumentCountOptions.SetMaxTime()FindOptions.MaxTime,FindOptions.SetMaxTime()FindOneOptions.MaxTime,FindOneOptions.SetMaxTime()FindOneAndReplaceOptions.MaxTime,FindOneAndReplaceOptions.SetMaxTime()FindOneAndUpdateOptions.MaxTime,FindOneAndUpdateOptions.SetMaxTime()GridFSFindOptions.MaxTime,GridFSFindOptions.SetMaxTime()CreateIndexesOptions.MaxTime,CreateIndexesOptions.SetMaxTime()DropIndexesOptions.MaxTime,DropIndexesOptions.SetMaxTime()ListIndexesOptions.MaxTime,ListIndexesOptions.SetMaxTime()SessionOptions.DefaultMaxCommitTime,SessionOptions.SetDefaultMaxCommitTime()TransactionOptions.MaxCommitTime,TransactionOptions.SetMaxCommitTime()WriteConcern.WTimeout
相反,您可以在客户端上或上下文中设立超时。了解详情,请参阅“限制服务器执行时间”指南。
删除
bson/primitive包。此包现已与bson包合并。要更新代码,删除所有bson/primitive导入语句,并将primitive.ObjectID的任何实例更改为bson.ObjectId。