了解以下版本中的新功能:
6.0 中的新增功能
本部分列出了以下补丁版本中引入的更改:
版本 6.0.3
Django MongoDB后端 v6.0.3发布包含以下功能、改进和修复:
ObjectId在URL模式中添加对 匹配的支持。要学习;了解更多信息,请参阅API文档中的URL调度程序。在未配置Queryable Encryption时生成错误,防止在非加密数据库中创建具有加密字段的模型。
版本 6.0.2
Django MongoDB后端 v6.0.2发布包含以下功能、改进和修复:
新增对
QuerySet.intersection()和QuerySet.difference()方法的支持。添加对
nulls_distinct构造函数的UniqueConstraint参数的支持,该参数允许您仅存储具有NULL值的一个文档。要学习;了解更多信息,请参阅创建模型指南中的 指定唯一约束。EmbeddedFieldIndex添加了EmbeddedModelField类,可对 和EmbeddedModelArrayField值的子字段启用索引。要学习;了解更多信息,请参阅创建索引指南中的嵌入式模型子字段索引。添加
EmbeddedFieldUniqueConstraint类,该类可对EmbeddedModelField和EmbeddedModelArrayField值的子字段启用唯一约束。要学习;了解更多信息,请参阅创建模型指南中的嵌入式字段约束。修复了一个错误,该错误会导致在对具有加密字段的模型调用
Model.save()时出现错误。
版本 6.0.1
Django MongoDB后端 v6.0.1发布包含以下功能、改进和修复:
添加对Queryable Encryption 的支持。要学习;了解更多信息,请参阅Queryable Encryption教程。
防止
Index系统检查运行两次。为
DatabaseError和IntegrityError异常添加异常消息。修复了
QuerySet.defer()和QuerySet.only()行为,以便这些方法项目正确的字段。不再使用聚合管道中的
$facet,从而提高查询性能。
版本 6.0.0
5.2 中的新增功能
本部分列出了以下补丁版本中引入的更改:
版本 5.2.4
Django MongoDB后端 v5.2.4发布包含以下功能、改进和修复:
通过将复杂条件从
$match阶段推送到$lookup阶段,提高使用$lookup聚合阶段的连接操作的性能
版本 5.2.3
Django MongoDB后端 v5.2.3发布包含以下功能、改进和修复:
防止
QuerySet.union()查询重复$project管道阶段。更新
Value类以在$literal操作符中包装字符串、字典和元组值,从而防止MongoDB将它们解释为表达式。同样,出于同样的原因,更新模型的查询现在会将值包装在$literal操作符中。使用
localField和foreignField简化$lookup查询。
版本 5.2.2
Django MongoDB后端 v5.2.2发布包含以下功能、改进和修复:
添加以下
SearchIndex参数,允许您创建更复杂的索引:field_mappingsanalyzersearch_analyzer
修复了使用数据库转换器加载包含
EmbeddedModel字段的模型时出现的KeyError异常(如果该字段不存在于数据中)。确保
db_column参数适用于EmbeddedModel字段。将
EmbeddedModelField的搜索索引类型和PolymorphicEmbeddedModelField值从embeddedDocuments更正为document。修复了未初始化数据库连接时出现的
transaction.atomic()错误。弃用了
django_mongodb_backend.utils.parse_uri()方法。未来发布中已删除此方法。
版本 5.2.1
Django MongoDB后端 v5.2.1发布包含以下功能、改进和修复:
版本 5.2.0
Django MongoDB后端 v5.2.0 是最初的正式发布 (GA)发布。要学习;了解有关 GA 功能的更多信息,请参阅博文Django MongoDB后端现已普遍可用。
版本 5.2.0 beta 3
警告
重大更改
Django MongoDB后端 v5.2.0 beta 3发布引入了以下破坏性变更 (breaking change):
删除对非字符串字段的模式匹配查找的支持。以前,这些查找使用
$toString操作符转换其输入。这会导致性能问题,因为MongoDB在运行查询时无法使用索引。
版本 5.2.0 beta 2
警告
重大更改
此版本发布了以下重大更改:
在表单和模型验证中将
django.db.models.SmallIntegerField和django.db.models.PositiveSmallIntegerField值限制为 32 位。删除对数据库缓存的支持。这可以防止破坏数据库的攻击者使用 pickle 编码的缓存值在应用程序服务器上运行任意命令。
Django MongoDB后端 v5.2.0 beta 2发布包括以下功能、改进和修复:
添加对MongoDB Search 查询的支持。要学习;了解更多信息,请参阅“运行MongoDB搜索查询”指南。
添加了对
EmbeddedModelArrayField值的子查询支持。要学习;了解更多信息,请参阅《指定查询》指南中的“查询嵌入式模型数组值”。将
options参数添加到django_mongodb_backend.utils.parse_uri()方法。新增
PolymorphicEmbeddedModelField和PolymorphicEmbeddedModelArrayField字段,用于存储可属于多个模型类的模型实例或模型实例列表。要学习;了解更多信息,请参阅创建模型指南中的存储多态嵌入式模型数据。更新
QuerySet.explain()以返回可解析为JSON 的字符串。修复了
IntegerField和PositiveBigIntegerField字段的唯一约束生成问题,该字段错误地允许大于 32 位的重复值。您必须重新创建现有的唯一约束才能使用$type: long而不是int。将以下字段作为
bson.int64.Int64值发送到MongoDB ,这修复了对小于 32 位的值的唯一约束:IntegerFieldBigIntegerFieldPositiveIntegerFieldPositiveBigIntegerFieldDurationField
通过删除服务器端分块的下限来提高
QuerySet性能。通过将一些简单条件从
$match阶段推送到$lookup阶段,提高使用$lookup聚合阶段的连接操作的性能。
版本 5.2.0 beta 1
Django MongoDB后端 v5.2.0 beta 1发布包括以下功能、改进和修复:
版本 5.2.0 beta 0
警告
重大更改
此版本发布了以下重大更改:
将支持的最低PyMongo版本从 4.6 增加到 4.7。
删除
django_mongodb_backend.utils.parse_uri()的conn_max_age参数。 Django MongoDB后端现在默认使用持久连接。
Django MongoDB后端 v5.2.0 beta 0发布包括以下功能、改进和修复:
5.1 中的新增功能
本部分列出了以下补丁版本中引入的更改:
版本 5.1.0 beta 4
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
删除对数据库缓存的支持。这可以防止破坏数据库的攻击者使用 pickle 编码的缓存值在应用程序服务器上运行任意命令。
Django MongoDB后端 v5.1.0 beta 4发布包括以下功能、改进和修复:
修复了加载具有 null
ArrayField值的模型以及base_field使用数据库转换器时发生的崩溃。通过删除服务器端分块的下限来提高
QuerySet性能。
版本 5.1.0 beta 3
Django MongoDB后端 v5.1.0 beta 3发布包括以下功能、改进和修复:
添加对字段自定义查找和转换的支持
EmbeddedModelField修复使用
Trunc数据库函数的tzinfo参数的查询结果新增对
QuerySet.dates()和QuerySet.datetimes()方法的支持修复了使用数据库转换器的嵌入式模型字段加载
QuerySet结果的问题
版本 5.1.0 beta 2
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
将
ArrayField的size参数重命名为max_size。size参数现在用于实施固定长度数组。
Django MongoDB后端 v5.1.0 beta 2发布包括以下功能、改进和修复:
添加对数据库缓存的支持。此支持后来在 v5.1.4 中删除。
修复当文档键顺序与模型字段顺序不匹配时
QuerySet.raw_aggregate()字段初始化的问题。
版本 5.1.0 beta 1
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
ObjectIdAutoField不再接受整数值
Django MongoDB后端 v5.1.0 beta 1发布包括以下功能、改进和修复:
新增对保存嵌套嵌入式模型表单的支持
修复持久数据库连接
添加对异步操作的支持
将
db_name参数添加到django_mongodb_backend.utils.parse_uri()方法添加
django_mongodb_backend.routers.MongoRouter路由器,以确保 Django MongoDB后端不会为嵌入式模型创建集合,并且dumpdata命令不包含嵌入式模型
版本 5.1.0 beta 0
Django MongoDB后端 v5.1.0 beta0 是初始公开预览发布。要学习;了解有关公共预览功能的更多信息,请参阅博文“官方 Django MongoDB后端现已推出公共预览版”。